fix : inspect element hang forever if opened by right context menu on the first time.

This commit is contained in:
Xiao YiFang 2022-06-09 20:15:02 +08:00
parent 73e02719d3
commit 0c21dacc8a
2 changed files with 9 additions and 3 deletions

View file

@ -3,7 +3,7 @@
#if (QT_VERSION > QT_VERSION_CHECK(6,0,0))
#include <QWebEngineContextMenuRequest>
#endif
ArticleInspector::ArticleInspector( QWidget * parent ) : QWidget( parent, Qt::WindowType::Window )
ArticleInspector::ArticleInspector( QWidget * parent ) : QWidget( parent, Qt::WindowType::Window ),firstTimeOpened(false)
{
setWindowTitle(tr("Inspect"));
setAttribute( Qt::WidgetAttribute::WA_DeleteOnClose, false );
@ -22,13 +22,17 @@ void ArticleInspector::setInspectPage( QWebEngineView * view )
viewContainer->page()->setInspectedPage(page);
#if( QT_VERSION > QT_VERSION_CHECK( 6, 0, 0 ) )
// without this line, application will crash on qt6.2 ,see https://bugreports.qt.io/browse/QTBUG-101724
if( view->lastContextMenuRequest() )
if( view->lastContextMenuRequest() && firstTimeOpened )
{
page->triggerAction( QWebEnginePage::InspectElement );
}
#else
page->triggerAction( QWebEnginePage::InspectElement );
#endif
if( !firstTimeOpened )
{
firstTimeOpened = true;
}
raise();
show();
}

View file

@ -15,7 +15,9 @@ public:
void setInspectPage( QWebEngineView * view);
private:
//used to record if the devtool was first time opened.
//if right click on the webpage and open inspect page on the first time ,the application has great possiblity to hang forever.
bool firstTimeOpened;
virtual void closeEvent( QCloseEvent * );
};