Cocoa: Disable “Hide” menu item on open popups

Follow native behavior and disable ⌘H and the “Hide”
menu item if there are any open popup windows.

Task-number: QTBUG-58727
Change-Id: Iad38cc5cce29e0081613417c53b154ae0f05857e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
bb10
Morten Johan Sørvig 2017-11-17 12:28:55 +01:00
parent c9f68a5858
commit 29104c85db
1 changed files with 6 additions and 2 deletions

View File

@ -43,6 +43,7 @@
#include "qcocoahelpers.h"
#include "qcocoamenubar.h"
#include "qcocoamenuitem.h"
#include "qcocoaintegration.h"
#include <QtCore/private/qcore_mac_p.h>
#include <QtCore/private/qthread_p.h>
@ -343,10 +344,13 @@
- (BOOL)validateMenuItem:(NSMenuItem*)menuItem
{
if ([menuItem action] == @selector(hide:)
|| [menuItem action] == @selector(hideOtherApplications:)
if ([menuItem action] == @selector(hideOtherApplications:)
|| [menuItem action] == @selector(unhideAllApplications:)) {
return [NSApp validateMenuItem:menuItem];
} else if ([menuItem action] == @selector(hide:)) {
if (QCocoaIntegration::instance()->activePopupWindow())
return NO;
return [NSApp validateMenuItem:menuItem];
} else if ([menuItem tag]) {
QCocoaMenuItem *cocoaItem = reinterpret_cast<QCocoaMenuItem *>([menuItem tag]);
return cocoaItem->isEnabled();