diff options
author | Axel Spoerl <axel.spoerl@qt.io> | 2024-03-27 16:00:37 +0100 |
---|---|---|
committer | Axel Spoerl <axel.spoerl@qt.io> | 2024-03-27 20:26:01 +0100 |
commit | 7aedcdefb81004f57e664409c0fb9f9b371ff4f0 (patch) | |
tree | 01ca6b41611b15aa65a8daeb612b620612b11b13 /src/widgets/widgets/qmenu.cpp | |
parent | 32e2386b157effa5f253ffd669ed52471863823b (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.7 6.6 6.5
Change-Id: I7457ca72166346f01cf71b2706ebc20ecd71173c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/widgets/widgets/qmenu.cpp')
-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 120820dea1..db00f8a650 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; } |