From 3a29996548fa3ae3ddfb1d4e741155bcf7727820 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Tue, 16 Jun 2020 13:31:17 +0200 Subject: [PATCH] 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 Reviewed-by: Friedemann Kleint --- src/widgets/widgets/qmenu.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp index 65803b8691e..6e6825daeab 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(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; }