summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoamenu.mm
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2021-05-25 17:09:09 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2021-05-27 22:18:32 +0200
commita3f3af8a8fb8f8b09d1685df5ab836244f850a62 (patch)
treed4ad87ca76f88b059037f7c0b251dcd21f3d5910 /src/plugins/platforms/cocoa/qcocoamenu.mm
parentb2e053072dc96c59613e1fb765b4506a167785e8 (diff)
macOS: don't show invisible separator items
Give QCocoaMenu access to the item's visibility property by adding a public getter, and respect that state when syncing the separator to the corresponding QCocoaNSMenuItems. Pick-to: 6.1 5.15 Fixes: QTBUG-88651 Change-Id: I7e238e5d3be141ec8f4e8f6f3ab22d761094d2d2 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoamenu.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenu.mm10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoamenu.mm b/src/plugins/platforms/cocoa/qcocoamenu.mm
index f3ee39160f..e22f619a6e 100644
--- a/src/plugins/platforms/cocoa/qcocoamenu.mm
+++ b/src/plugins/platforms/cocoa/qcocoamenu.mm
@@ -303,9 +303,13 @@ void QCocoaMenu::syncSeparatorsCollapsible(bool enable)
for (NSMenuItem *item in m_nativeMenu.itemArray) {
if (item.separatorItem) {
- if (auto *cocoaItem = qt_objc_cast<QCocoaNSMenuItem *>(item).platformMenuItem)
- cocoaItem->setVisible(!previousIsSeparator);
- item.hidden = previousIsSeparator;
+ // hide item if previous was a separator, or if it's explicitly hidden
+ bool itemVisible = !previousIsSeparator;
+ if (auto *cocoaItem = qt_objc_cast<QCocoaNSMenuItem *>(item).platformMenuItem) {
+ cocoaItem->setVisible(!previousIsSeparator && cocoaItem->isVisible());
+ itemVisible = cocoaItem->isVisible();
+ }
+ item.hidden = !itemVisible;
}
if (!item.hidden) {