diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-04-04 10:23:02 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-04-05 09:00:51 +0000 |
commit | 2823cc6d4b24b26f82c991c532b749baa9dbb3a7 (patch) | |
tree | 194c638a65a843672d34554794c8b3ef8972f3c6 /src/plugins/platforms/windows | |
parent | f2fd5f390ce8f93778d755112d0f892758d243e2 (diff) |
Windows QPA: Fix override cursor not working when re-entering the window
Return early from QWindowsWindow::applyCursor() when an override cursor
is set.
Task-number: QTBUG-67467
Change-Id: I0d3ceead8bbbd3c6295c216a944a1ef15b6f8190
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'src/plugins/platforms/windows')
-rw-r--r-- | src/plugins/platforms/windows/qwindowscursor.h | 1 | ||||
-rw-r--r-- | src/plugins/platforms/windows/qwindowswindow.cpp | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/plugins/platforms/windows/qwindowscursor.h b/src/plugins/platforms/windows/qwindowscursor.h index 4772f3fce5..53f185358b 100644 --- a/src/plugins/platforms/windows/qwindowscursor.h +++ b/src/plugins/platforms/windows/qwindowscursor.h @@ -107,6 +107,7 @@ public: void changeCursor(QCursor * widgetCursor, QWindow * widget) override; void setOverrideCursor(const QCursor &cursor) override; void clearOverrideCursor() override; + bool hasOverrideCursor() const { return m_overriddenCursor != nullptr; } QPoint pos() const override; void setPos(const QPoint &pos) override; diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp index 9872b6b4e0..f1762146ec 100644 --- a/src/plugins/platforms/windows/qwindowswindow.cpp +++ b/src/plugins/platforms/windows/qwindowswindow.cpp @@ -2410,6 +2410,8 @@ static inline bool applyNewCursor(const QWindow *w) void QWindowsWindow::applyCursor() { + if (static_cast<const QWindowsCursor *>(screen()->cursor())->hasOverrideCursor()) + return; #ifndef QT_NO_CURSOR if (m_cursor->isNull()) { // Recurse up to parent with non-null cursor. Set default for toplevel. if (const QWindow *p = window()->parent()) { |