From 91b1ceb4838e9b9140a966a1e161ab3b649a36bc Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Wed, 22 Feb 2017 13:14:40 +0100 Subject: Fix crash on context menu Instead of calling deleteLater, just tell close to delete the menu itself. Task-number: QTBUG-59080 Change-Id: I3eae382781f813ed3c6f27b78088b94ed1c486dd Reviewed-by: Michal Klocek Reviewed-by: Peter Varga --- examples/webenginewidgets/demobrowser/webview.cpp | 2 +- examples/webenginewidgets/simplebrowser/webview.cpp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'examples') diff --git a/examples/webenginewidgets/demobrowser/webview.cpp b/examples/webenginewidgets/demobrowser/webview.cpp index ab2a4f3c6..498df74fc 100644 --- a/examples/webenginewidgets/demobrowser/webview.cpp +++ b/examples/webenginewidgets/demobrowser/webview.cpp @@ -363,6 +363,7 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) QMenu *menu; if (page()->contextMenuData().linkUrl().isValid()) { menu = new QMenu(this); + menu->setAttribute(Qt::WA_DeleteOnClose, true); menu->addAction(page()->action(QWebEnginePage::OpenLinkInThisWindow)); menu->addAction(page()->action(QWebEnginePage::OpenLinkInNewWindow)); menu->addAction(page()->action(QWebEnginePage::OpenLinkInNewTab)); @@ -375,7 +376,6 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) } if (page()->contextMenuData().selectedText().isEmpty()) menu->addAction(page()->action(QWebEnginePage::SavePage)); - connect(menu, &QMenu::aboutToHide, menu, &QObject::deleteLater); menu->popup(event->globalPos()); } diff --git a/examples/webenginewidgets/simplebrowser/webview.cpp b/examples/webenginewidgets/simplebrowser/webview.cpp index 657993fc6..e4e7f5efa 100644 --- a/examples/webenginewidgets/simplebrowser/webview.cpp +++ b/examples/webenginewidgets/simplebrowser/webview.cpp @@ -151,7 +151,6 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) menu->insertAction(before, page()->action(QWebEnginePage::OpenLinkInNewWindow)); menu->insertAction(before, page()->action(QWebEnginePage::OpenLinkInNewTab)); } - connect(menu, &QMenu::aboutToHide, menu, &QObject::deleteLater); menu->popup(event->globalPos()); } -- cgit v1.2.3 From 714bddf9921a4e12f03867118c6a4697083e6a14 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Wed, 22 Feb 2017 17:52:43 +0100 Subject: Add support for macOS Airplay to Demobrowser in presence of dual GPUs Previously when Airplay was activated and a new QWebEngineView instance was created, a black area would be rendered inside the view. This happened because of incompatible OpenGL contexts. The global Qt OpenGL context could not share its textures with the newly created "after-airplay" context, due to the contexts being used by different GPUs (only possible on a MacBook Pro). The fix is to add the NSSupportsAutomaticGraphicsSwitching option into the application plist file, which informs macOS that the application supports usage of dual GPUs, and thus allows sharing of contexts across GPUs. Task-number: QTBUG-54053 Change-Id: Ic37fb75f164922bcca6456054174171fa9ba2bfb Reviewed-by: Leena Miettinen Reviewed-by: Allan Sandfeld Jensen --- examples/webenginewidgets/demobrowser/Info_mac.plist | 2 ++ 1 file changed, 2 insertions(+) (limited to 'examples') diff --git a/examples/webenginewidgets/demobrowser/Info_mac.plist b/examples/webenginewidgets/demobrowser/Info_mac.plist index ccd4b3f28..25443f7be 100644 --- a/examples/webenginewidgets/demobrowser/Info_mac.plist +++ b/examples/webenginewidgets/demobrowser/Info_mac.plist @@ -41,5 +41,7 @@ NOTE DemoBrowser by The Qt Company Ltd. + NSSupportsAutomaticGraphicsSwitching + YES -- cgit v1.2.3