fix:inspect windows on qt6 can not work with right context menu

This commit is contained in:
Xiao YiFang 2022-06-23 20:05:59 +08:00
parent 4e4c9375be
commit 4a3905c701
2 changed files with 8 additions and 12 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 ),firstTimeOpened(false)
ArticleInspector::ArticleInspector( QWidget * parent ) : QWidget( parent, Qt::WindowType::Window )
{
setWindowTitle(tr("Inspect"));
setAttribute( Qt::WidgetAttribute::WA_DeleteOnClose, false );
@ -22,14 +22,12 @@ 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() && firstTimeOpened )
{
page->triggerAction( QWebEnginePage::InspectElement );
}
if( !firstTimeOpened )
{
firstTimeOpened = true;
}
// and seems to hangup forever on qt6.3 ,so the best solution for now is to comment out the following lines.
// if( view->lastContextMenuRequest())
// {
// page->triggerAction( QWebEnginePage::InspectElement );
// }
#else
page->triggerAction( QWebEnginePage::InspectElement );
#endif

View file

@ -15,9 +15,7 @@ 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 * );
};