diff options
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoamenuloader.mm')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoamenuloader.mm | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoamenuloader.mm b/src/plugins/platforms/cocoa/qcocoamenuloader.mm index d4009cf63b..9bd6108d0d 100644 --- a/src/plugins/platforms/cocoa/qcocoamenuloader.mm +++ b/src/plugins/platforms/cocoa/qcocoamenuloader.mm @@ -272,18 +272,21 @@ - (NSMenuItem *)appSpecificMenuItem:(QCocoaMenuItem *)platformItem { + // No reason to create the item if it already exists. for (NSMenuItem *item in appMenu.itemArray) if ([item isMemberOfClass:[QCocoaNSMenuItem class]] - && static_cast<QCocoaNSMenuItem *>(item).platformMenuItem == platformItem) { - // No reason to create the item if it already exists. + && static_cast<QCocoaNSMenuItem *>(item).platformMenuItem == platformItem) return [[item retain] autorelease]; - } // Create an App-Specific menu item, insert it into the menu and return // it as an autorelease item. - QCocoaNSMenuItem *item = [[QCocoaNSMenuItem alloc] initWithPlatformMenuItem:platformItem]; + QCocoaNSMenuItem *item; + if (platformItem->isSeparator()) + item = [[QCocoaNSMenuItem separatorItemWithPlatformMenuItem:platformItem] retain]; + else + item = [[QCocoaNSMenuItem alloc] initWithPlatformMenuItem:platformItem]; - NSInteger location = [appMenu indexOfItem:lastAppSpecificItem]; + const auto location = [appMenu indexOfItem:lastAppSpecificItem]; if (!lastAppSpecificItem.separatorItem) [lastAppSpecificItem release]; |