]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Revert commit 0c6c76b038e868e225f7816fae39635d472bce0a and make the
authorEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Thu, 29 Jan 2015 12:45:14 +0000 (13:45 +0100)
committerEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Thu, 29 Jan 2015 12:45:14 +0000 (13:45 +0100)
QWeakPointer a QPointer (+comment) to make it clear, that we must track the lifetime of the context menu instead of doing "only" out of scope deleting.

Thanks to Frank for pointing out this problem!

CCMAIL: frank78ac@googlemail.com

src/dolphinmainwindow.cpp

index 398af70a85f62b1d5e6623eaf6a579d6c114990d..1360a42e5d9b0db9d4fe8427d80d99c647a4f6db 100644 (file)
@@ -758,7 +758,7 @@ void DolphinMainWindow::openContextMenu(const QPoint& pos,
                                         const QUrl& url,
                                         const QList<QAction*>& customActions)
 {
-    QScopedPointer<DolphinContextMenu> contextMenu(new DolphinContextMenu(this, pos, item, url));
+    QPointer<DolphinContextMenu> contextMenu = new DolphinContextMenu(this, pos, item, url);
     contextMenu.data()->setCustomActions(customActions);
     const DolphinContextMenu::Command command = contextMenu.data()->open();
 
@@ -781,6 +781,11 @@ void DolphinMainWindow::openContextMenu(const QPoint& pos,
     default:
         break;
     }
+
+    // Delete the menu, unless it has been deleted in its own nested event loop already.
+    if (contextMenu) {
+        contextMenu->deleteLater();
+    }
 }
 
 void DolphinMainWindow::updateControlMenu()