diff options
author | Sergio Martins <sergio.martins@kdab.com> | 2018-04-09 21:46:34 +0100 |
---|---|---|
committer | Sérgio Martins <sergio.martins@kdab.com> | 2018-04-10 15:56:18 +0000 |
commit | 4eeafe1cbfa6a80a059df0df0a791840bca32b42 (patch) | |
tree | 35cb78a6e387eac3185cba664d2d720ccbeaec94 | |
parent | 28f9b35b35e7c9964f22f4e28aac9c6093401900 (diff) |
Fix crash if dock widget gets deleted while dragging
By using a QPointer.
Change-Id: I16832dadc9cd8cefc4f9f276b1242c0000097b95
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
-rw-r--r-- | src/widgets/widgets/qmainwindowlayout.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/widgets/widgets/qmainwindowlayout.cpp b/src/widgets/widgets/qmainwindowlayout.cpp index 9b38da340c..9cf2e7de1f 100644 --- a/src/widgets/widgets/qmainwindowlayout.cpp +++ b/src/widgets/widgets/qmainwindowlayout.cpp @@ -68,6 +68,7 @@ #include <qstack.h> #include <qmap.h> #include <qtimer.h> +#include <qpointer.h> #ifndef QT_NO_DEBUG_STREAM # include <qdebug.h> @@ -1654,7 +1655,7 @@ void QMainWindowLayout::keepSize(QDockWidget *w) class QMainWindowTabBar : public QTabBar { QMainWindow *mainWindow; - QDockWidget *draggingDock; // Currently dragging (detached) dock widget + QPointer<QDockWidget> draggingDock; // Currently dragging (detached) dock widget public: QMainWindowTabBar(QMainWindow *parent); protected: @@ -1665,7 +1666,7 @@ protected: }; QMainWindowTabBar::QMainWindowTabBar(QMainWindow *parent) - : QTabBar(parent), mainWindow(parent), draggingDock(0) + : QTabBar(parent), mainWindow(parent) { setExpanding(false); } |