Use QPointer for QWindow pointers in QGuiApplication

Guard against stale pointers; Use QPointer instead of
raw pointers for QGuiApplicationPrivate state variables.

Change-Id: Ie4f980f13dafe9729c1898b8fac7d26a87d2ca59
Fixes: QTBUG-80355
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
Morten Johan Sørvig 2020-01-06 12:08:49 +01:00
parent cb5f69882e
commit 3f23d27dd5
2 changed files with 6 additions and 6 deletions

View File

@ -140,7 +140,7 @@ Qt::KeyboardModifiers QGuiApplicationPrivate::modifier_buttons = Qt::NoModifier;
QPointF QGuiApplicationPrivate::lastCursorPosition(qInf(), qInf());
QWindow *QGuiApplicationPrivate::currentMouseWindow = 0;
QPointer<QWindow> QGuiApplicationPrivate::currentMouseWindow;
QString QGuiApplicationPrivate::styleOverride;
@ -185,7 +185,7 @@ int QGuiApplicationPrivate::mousePressY = 0;
static int mouseDoubleClickDistance = -1;
static int touchDoubleTapDistance = -1;
QWindow *QGuiApplicationPrivate::currentMousePressWindow = 0;
QPointer<QWindow> QGuiApplicationPrivate::currentMousePressWindow;
static Qt::LayoutDirection layout_direction = Qt::LayoutDirectionAuto;
static bool force_reverse = false;
@ -201,7 +201,7 @@ QClipboard *QGuiApplicationPrivate::qt_clipboard = 0;
QList<QScreen *> QGuiApplicationPrivate::screen_list;
QWindowList QGuiApplicationPrivate::window_list;
QWindow *QGuiApplicationPrivate::focus_window = 0;
QPointer<QWindow> QGuiApplicationPrivate::focus_window;
static QBasicMutex applicationFontMutex;
QFont *QGuiApplicationPrivate::app_font = 0;

View File

@ -212,8 +212,8 @@ public:
static int mousePressX;
static int mousePressY;
static QPointF lastCursorPosition;
static QWindow *currentMouseWindow;
static QWindow *currentMousePressWindow;
static QPointer<QWindow> currentMouseWindow;
static QPointer<QWindow> currentMousePressWindow;
static Qt::ApplicationState applicationState;
static bool highDpiScalingUpdated;
static QPointer<QWindow> currentDragWindow;
@ -234,7 +234,7 @@ public:
static QPalette *app_pal;
static QWindowList window_list;
static QWindow *focus_window;
static QPointer<QWindow> focus_window;
#ifndef QT_NO_CURSOR
QList<QCursor> cursor_list;