diff options
author | Gabriel de Dietrich <gabriel.dedietrich@qt.io> | 2016-12-05 14:38:12 -0800 |
---|---|---|
committer | Jani Heikkinen <jani.heikkinen@qt.io> | 2016-12-08 05:09:14 +0000 |
commit | 093e1111ef68a8a83e42d5d82fc9d5c93d47071b (patch) | |
tree | be0b0797b8b0235c0cfc59efd2da53eb88cb3eab /src/plugins/platforms/cocoa/qcocoamenu.mm | |
parent | b2f78b796b5b73d4f0732975ffd66f8aa392c001 (diff) |
QCocoaMenu: Don't rely on tags when we can get the actual NSMenuItem
-[NSMenu itemWithTag:] clearly states that it'll return the first
item with that tag. Furthermore, when and item has been synced more
than once, it could be that more than one such item exists in the
same menu (e.g. lately changing the role of Edit->Copy).
Change-Id: I95a4f0a151659ae273ba03a3cab4a720b781fc3a
Task-number: QTBUG-57404
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoamenu.mm')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoamenu.mm | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoamenu.mm b/src/plugins/platforms/cocoa/qcocoamenu.mm index 915463a52a..81db919627 100644 --- a/src/plugins/platforms/cocoa/qcocoamenu.mm +++ b/src/plugins/platforms/cocoa/qcocoamenu.mm @@ -419,9 +419,8 @@ void QCocoaMenu::syncMenuItem(QPlatformMenuItem *menuItem) return; } - bool wasMerged = cocoaItem->isMerged(); - NSMenu *oldMenu = wasMerged ? [[QCocoaMenuLoader sharedMenuLoader] applicationMenu] : m_nativeMenu; - NSMenuItem *oldItem = [oldMenu itemWithTag:(NSInteger) cocoaItem]; + const bool wasMerged = cocoaItem->isMerged(); + NSMenuItem *oldItem = cocoaItem->nsItem(); if (cocoaItem->sync() != oldItem) { // native item was changed for some reason |