diff options
author | Axel Spoerl <axel.spoerl@qt.io> | 2024-03-27 16:00:37 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2024-03-28 09:56:24 +0000 |
commit | a158a1807edafb1e1711d17e09d5b0e4e7d8a6f3 (patch) | |
tree | cfd1eaf81fadad7e1cf53f9569dfb38a6dbb27ef | |
parent | 5b26405408f63c1e2c2ca995ab946d961cd23841 (diff) |
QMenu: clear popup screen after exec()
8cd7a3d4723ca414f3fe544704a0ccb752da94b8 remembered the current screen
in QMenuPrivate::popupScreen. This QPointer member is not reset, after
QMenu:exec(), which makes a re-used menu remember the wrong screen, if
its next usage happens on another screen.
Reset the member variable at the end of QMenuPrivate::exec().
This amends 8cd7a3d4723ca414f3fe544704a0ccb752da94b8.
Fixes: QTBUG-118434
Pick-to: 6.5
Change-Id: I7457ca72166346f01cf71b2706ebc20ecd71173c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
(cherry picked from commit 7aedcdefb81004f57e664409c0fb9f9b371ff4f0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 137706fc31b0018b69b59827176cfd06e983c39b)
-rw-r--r-- | src/widgets/widgets/qmenu.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp index 3edebb388d..0110bb9d29 100644 --- a/src/widgets/widgets/qmenu.cpp +++ b/src/widgets/widgets/qmenu.cpp @@ -2674,6 +2674,7 @@ QAction *QMenuPrivate::exec(const QPoint &p, QAction *action, PositionFunction p action = syncAction; syncAction = nullptr; eventLoop = nullptr; + popupScreen.clear(); return action; } |