summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets/qmainwindowlayout.cpp
diff options
context:
space:
mode:
authorSergio Martins <sergio.martins@kdab.com>2018-04-09 21:46:34 +0100
committerSérgio Martins <sergio.martins@kdab.com>2018-04-10 15:56:18 +0000
commit4eeafe1cbfa6a80a059df0df0a791840bca32b42 (patch)
tree35cb78a6e387eac3185cba664d2d720ccbeaec94 /src/widgets/widgets/qmainwindowlayout.cpp
parent28f9b35b35e7c9964f22f4e28aac9c6093401900 (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>
Diffstat (limited to 'src/widgets/widgets/qmainwindowlayout.cpp')
-rw-r--r--src/widgets/widgets/qmainwindowlayout.cpp5
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);
}