diff --git a/shell/browser/mac/electron_application_delegate.mm b/shell/browser/mac/electron_application_delegate.mm index 72774bcd6783..9f947f4933b1 100644 --- a/shell/browser/mac/electron_application_delegate.mm +++ b/shell/browser/mac/electron_application_delegate.mm @@ -56,11 +56,6 @@ static NSDictionary* UNNotificationResponseToNSDictionary( } - (void)applicationWillFinishLaunching:(NSNotification*)notify { - // Don't add the "Enter Full Screen" menu item automatically. - [[NSUserDefaults standardUserDefaults] - setBool:NO - forKey:@"NSFullScreenMenuItemEverywhere"]; - [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(willPowerOff:) diff --git a/shell/browser/ui/cocoa/electron_menu_controller.mm b/shell/browser/ui/cocoa/electron_menu_controller.mm index 94334af9c275..7c58fb44f9fb 100644 --- a/shell/browser/ui/cocoa/electron_menu_controller.mm +++ b/shell/browser/ui/cocoa/electron_menu_controller.mm @@ -560,6 +560,14 @@ NSArray* ConvertSharingItemToNS(const SharingItem& item) { - (void)menuWillOpen:(NSMenu*)menu { isMenuOpen_ = YES; + + // macOS automatically injects a duplicate "Toggle Full Screen" menu item + // when we set menu.delegate on submenus. Remove hidden duplicates. + for (NSMenuItem* item in menu.itemArray) { + if (item.isHidden && item.action == @selector(toggleFullScreenMode:)) + [menu removeItem:item]; + } + [self refreshMenuTree:menu]; if (model_) model_->MenuWillShow();