diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-06-16 13:31:17 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-06-17 09:16:55 +0200 |
commit | 3a29996548fa3ae3ddfb1d4e741155bcf7727820 (patch) | |
tree | 0f3ea4ca072f6960e6346d566a1db37d94eb0a83 /src/widgets | |
parent | 710777d5d32ef13f2037cfe58e40ff2343355759 (diff) |
Always show a submenu on its parent menu's screen, if possible
Amends c068edcecf6876c7b57abbe302ad8b1347e4445e with another
nullptr check.
Fixes: QTCREATORBUG-24195
Task-number: QTBUG-76162
Change-Id: Ifaafe9b45fafaae220da54bbf3bc7a568e7953f9
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/widgets/qmenu.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp index 65803b8691..6e6825daea 100644 --- a/src/widgets/widgets/qmenu.cpp +++ b/src/widgets/widgets/qmenu.cpp @@ -2376,9 +2376,10 @@ void QMenu::popup(const QPoint &p, QAction *atAction) d->itemsDirty = true; screenSet = true; } else if (QMenu *parentMenu = qobject_cast<QMenu *>(parent())) { - // a submenu is always opened from an open parent menu, + // a submenu is normally opened from an open parent menu, // so show it on the same screen where the parent is. - if (d->setScreen(QMenuPrivate::get(parentMenu)->windowHandle()->screen())) + if (QMenuPrivate::get(parentMenu)->windowHandle() && + d->setScreen(QMenuPrivate::get(parentMenu)->windowHandle()->screen())) d->itemsDirty = true; screenSet = true; } |