summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-02-22 13:14:40 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-02-22 15:30:58 +0000
commit91b1ceb4838e9b9140a966a1e161ab3b649a36bc (patch)
tree23a8054654d09968e122e689013805eb6647b6f0
parent5ff4702ea7e567eecc767a2e40d383a27f4ee4fb (diff)
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 <michal.klocek@qt.io> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
-rw-r--r--examples/webenginewidgets/demobrowser/webview.cpp2
-rw-r--r--examples/webenginewidgets/simplebrowser/webview.cpp1
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp2
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp1
4 files changed, 3 insertions, 3 deletions
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());
}
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 69697d626..eeb5524a0 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -1615,6 +1615,8 @@ QMenu *QWebEnginePage::createStandardContextMenu()
if (d->isFullScreenMode())
menu->addAction(QWebEnginePage::action(ExitFullScreen));
+ menu->setAttribute(Qt::WA_DeleteOnClose, true);
+
return menu;
}
diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp
index 8b4053e73..63cf30d67 100644
--- a/src/webenginewidgets/api/qwebengineview.cpp
+++ b/src/webenginewidgets/api/qwebengineview.cpp
@@ -322,7 +322,6 @@ bool QWebEngineView::event(QEvent *ev)
void QWebEngineView::contextMenuEvent(QContextMenuEvent *event)
{
QMenu *menu = page()->createStandardContextMenu();
- connect(menu, &QMenu::aboutToHide, menu, &QObject::deleteLater);
menu->popup(event->globalPos());
}