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>
bb10
Sergio Martins 2018-04-09 21:46:34 +01:00 committed by Sérgio Martins
parent 28f9b35b35
commit 4eeafe1cbf
1 changed files with 3 additions and 2 deletions

View File

@ -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);
}