summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2020-06-16 13:31:17 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2020-06-17 09:16:55 +0200
commit3a29996548fa3ae3ddfb1d4e741155bcf7727820 (patch)
tree0f3ea4ca072f6960e6346d566a1db37d94eb0a83 /src/widgets
parent710777d5d32ef13f2037cfe58e40ff2343355759 (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.cpp5
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;
}