]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Fix crash at shutdown after showing a tooltip
authorDavid Hallas <david@davidhallas.dk>
Wed, 13 Mar 2019 19:27:40 +0000 (20:27 +0100)
committerDavid Hallas <david@davidhallas.dk>
Sun, 17 Mar 2019 17:09:02 +0000 (18:09 +0100)
Summary:
Fix crash at shutdown after showing a tooltip. The commit
94d7e1471e0a81b72285795ad91c4f6196157ae4 introduced a crash that occurs
when closing Dolphin after Dolphin has showed a tooltip. This happens
because the ToolTipManager::showToolTip function calls the
KToopTipWidget::showBelow function passing in the pointer to the
DolphinFileMetaDataWidget. But this also passes the ownership of the
pointer to the KToopTipWidget as long as a new tooltip is not shown. The
problem is that at shutdown, the KToopTipWidget instance will be
destoyed first and therefore also destroy the DolphinFileMetaDataWidget
instance (which the ToolTipManager still owns through the
QScopedPointer) causing it to be deleted twice. The fix for this is
simply to swap the order of these two members so that the
DolphinFileMetaDataWidget is destroyed first by the QScopedPointer
thereby removing it from the KToopTipWidget if it has been set as it's
parent.

Test Plan:
Open Dolphin
Show a Tool Tip
Close Dolphin

Reviewers: #dolphin, elvisangelaccio

Reviewed By: #dolphin, elvisangelaccio

Subscribers: kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D19737

src/views/tooltips/tooltipmanager.h

index 63c723f8025685daca3848bbbdfd65bda489c1dc..10f88ad76e6cad0dc9a2ad96118bb925d6780bff 100644 (file)
@@ -84,8 +84,8 @@ private:
     /// Transient parent of the tooltip, mandatory on Wayland.
     QWindow* m_transientParent;
 
-    QScopedPointer<DolphinFileMetaDataWidget> m_fileMetaDataWidget;
     QScopedPointer<KToolTipWidget> m_tooltipWidget;
+    QScopedPointer<DolphinFileMetaDataWidget> m_fileMetaDataWidget;
 
     bool m_toolTipRequested;
     bool m_metaDataRequested;