summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets/qmenu.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2017-03-31 08:37:24 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2017-04-03 06:49:42 +0000
commite94e4d002e977c8a1f0ff8dda9b4d6bcd0743336 (patch)
treebf021ffad7e6eac095bc74c4dfed8bd4e4bd0f23 /src/widgets/widgets/qmenu.cpp
parent392294936ed14ee75b3d1cdae559bd41bbf63ef2 (diff)
QMenu: Do not unnecessarily call QPlatformMenu::menuItemForTag()
When handling QActionEvent / ActionAdded, QActionEvent::before() is 0 for the common 'append' case. Do not try to find a QPlatformMenuItem for this. Change-Id: I535b675fda6a2812b61eb8d7eec01da378ece413 Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Albert Astals Cid <albert.astals@canonical.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/widgets/widgets/qmenu.cpp')
-rw-r--r--src/widgets/widgets/qmenu.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp
index 1925b58326..2b10ae7261 100644
--- a/src/widgets/widgets/qmenu.cpp
+++ b/src/widgets/widgets/qmenu.cpp
@@ -3456,7 +3456,9 @@ void QMenu::actionEvent(QActionEvent *e)
QObject::connect(menuItem, SIGNAL(activated()), e->action(), SLOT(trigger()));
QObject::connect(menuItem, SIGNAL(hovered()), e->action(), SIGNAL(hovered()));
copyActionToPlatformItem(e->action(), menuItem, d->platformMenu);
- QPlatformMenuItem* beforeItem = d->platformMenu->menuItemForTag(reinterpret_cast<quintptr>(e->before()));
+ QPlatformMenuItem *beforeItem = e->before()
+ ? d->platformMenu->menuItemForTag(reinterpret_cast<quintptr>(e->before()))
+ : nullptr;
d->platformMenu->insertMenuItem(menuItem, beforeItem);
} else if (e->type() == QEvent::ActionRemoved) {
QPlatformMenuItem *menuItem = d->platformMenu->menuItemForTag(reinterpret_cast<quintptr>(e->action()));