diff options
-rw-r--r-- | src/widgets/widgets/qmenu.cpp | 6 | ||||
-rw-r--r-- | src/widgets/widgets/qmenu_p.h | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp index ded218de73..463254efa9 100644 --- a/src/widgets/widgets/qmenu.cpp +++ b/src/widgets/widgets/qmenu.cpp @@ -2339,6 +2339,12 @@ void QMenu::popup(const QPoint &p, QAction *atAction) d->updateLayoutDirection(); d->adjustMenuScreen(p); + const bool contextMenu = d->isContextMenu(); + if (d->lastContextMenu != contextMenu) { + d->itemsDirty = true; + d->lastContextMenu = contextMenu; + } + #if QT_CONFIG(menubar) // if this menu is part of a chain attached to a QMenuBar, set the // _NET_WM_WINDOW_TYPE_DROPDOWN_MENU X11 window type diff --git a/src/widgets/widgets/qmenu_p.h b/src/widgets/widgets/qmenu_p.h index bdf576b980..a81d8ffafb 100644 --- a/src/widgets/widgets/qmenu_p.h +++ b/src/widgets/widgets/qmenu_p.h @@ -272,6 +272,7 @@ public: QMenuPrivate() : itemsDirty(false), hasCheckableItems(false), + lastContextMenu(false), collapsibleSeparators(true), toolTipsVisible(false), delayedPopupGuard(false), @@ -464,6 +465,7 @@ public: mutable bool itemsDirty : 1; mutable bool hasCheckableItems : 1; + bool lastContextMenu : 1; bool collapsibleSeparators : 1; bool toolTipsVisible : 1; bool delayedPopupGuard : 1; |