diff --git a/browser/api/atom_api_menu_mac.h b/browser/api/atom_api_menu_mac.h index 342f436f5b68..5f88c9b0e8fa 100644 --- a/browser/api/atom_api_menu_mac.h +++ b/browser/api/atom_api_menu_mac.h @@ -26,11 +26,6 @@ class MenuMac : public Menu { private: friend class Menu; - // The MenuController doesn't set title for menus, however it's required by - // application menu to show submenus correctly, fix it by iterating all - // submenus and set their titles. - static void FixMenuTitles(NSMenu* menu); - // Fake sending an action from the application menu. static void SendActionToFirstResponder(const std::string& action); diff --git a/browser/api/atom_api_menu_mac.mm b/browser/api/atom_api_menu_mac.mm index 2d40f6b30d27..2ae9f05e9a97 100644 --- a/browser/api/atom_api_menu_mac.mm +++ b/browser/api/atom_api_menu_mac.mm @@ -62,22 +62,6 @@ void MenuMac::Popup(NativeWindow* native_window) { } } -// static -void MenuMac::FixMenuTitles(NSMenu* menu) { - int size = [menu numberOfItems]; - for (int i = 0; i < size; ++i) { - NSMenuItem* item = [menu itemAtIndex:i]; - if ([item hasSubmenu]) { - NSString* title = [item title]; - NSMenu* submenu = [item submenu]; - [submenu setTitle:title]; - - if ([title isEqualToString:@"Window"] && [submenu numberOfItems] > 0) - [NSApp setWindowsMenu:submenu]; - } - } -} - // static void MenuMac::SendActionToFirstResponder(const std::string& action) { SEL selector = NSSelectorFromString(base::SysUTF8ToNSString(action)); @@ -100,7 +84,6 @@ v8::Handle Menu::SetApplicationMenu(const v8::Arguments &args) { scoped_nsobject menu_controller( [[AtomMenuController alloc] initWithModel:menu->model_.get() useWithPopUpButtonCell:NO]); - MenuMac::FixMenuTitles([menu_controller menu]); [NSApp setMainMenu:[menu_controller menu]]; // Ensure the menu_controller_ is destroyed after main menu is set. diff --git a/browser/ui/atom_menu_controller_mac.mm b/browser/ui/atom_menu_controller_mac.mm index 8498eb26c18a..ae352a5967b3 100644 --- a/browser/ui/atom_menu_controller_mac.mm +++ b/browser/ui/atom_menu_controller_mac.mm @@ -159,7 +159,12 @@ int EventFlagsFromNSEvent(NSEvent* event) { ui::MenuModel* submenuModel = model->GetSubmenuModelAt(index); NSMenu* submenu = [self menuFromModel:(ui::SimpleMenuModel*)submenuModel]; + [submenu setTitle:[item title]]; [item setSubmenu:submenu]; + + // Hack to set window menu. + if ([[item title] isEqualToString:@"Window"] && [submenu numberOfItems] > 0) + [NSApp setWindowsMenu:submenu]; } else { // The MenuModel works on indexes so we can't just set the command id as the // tag like we do in other menus. Also set the represented object to be