From dc254e4bfc8eed03a7d09350bb89fd7b2e8aba3e Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Mon, 2 Feb 2026 09:39:24 +0100 Subject: [PATCH] fix: duplicate fullscreen macOS menu item (#49597) Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr --- shell/browser/mac/electron_application_delegate.mm | 5 ----- shell/browser/ui/cocoa/electron_menu_controller.mm | 8 ++++++++ 2 files changed, 8 insertions(+), 5 deletions(-) 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();