summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoamenubar.mm
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-06-03 12:58:00 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-06-03 12:58:00 +0200
commit7315b3ab2f7a7745e63eea2935140f903fc53266 (patch)
tree2b0b9438102bab8050eed1cc81a922d21401e9af /src/plugins/platforms/cocoa/qcocoamenubar.mm
parent2cb5f1957ac709d27acbbdb49be8615670682212 (diff)
parent883951928fc6d5c0d06c24a9a1790eeb805b1587 (diff)
Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoamenubar.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenubar.mm11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoamenubar.mm b/src/plugins/platforms/cocoa/qcocoamenubar.mm
index b112e40549..e280cf4581 100644
--- a/src/plugins/platforms/cocoa/qcocoamenubar.mm
+++ b/src/plugins/platforms/cocoa/qcocoamenubar.mm
@@ -136,6 +136,17 @@ void QCocoaMenuBar::syncMenu(QPlatformMenu *menu)
QCocoaMenu *cocoaMenu = static_cast<QCocoaMenu *>(menu);
Q_FOREACH (QCocoaMenuItem *item, cocoaMenu->items())
cocoaMenu->syncMenuItem(item);
+
+ // If the NSMenu has no visble items, or only separators, we should hide it
+ // on the menubar. This can happen after syncing the menu items since they
+ // can be moved to other menus.
+ BOOL shouldHide = YES;
+ for (NSMenuItem *item in [cocoaMenu->nsMenu() itemArray])
+ if (![item isSeparatorItem] && ![item isHidden]) {
+ shouldHide = NO;
+ break;
+ }
+ [cocoaMenu->nsMenuItem() setHidden:shouldHide];
}
void QCocoaMenuBar::handleReparent(QWindow *newParentWindow)