From 1122c1444301231a1072395f4c9018a965df0bfc Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Wed, 19 Feb 2014 14:24:49 +0000 Subject: Invisible items and submenus are now skipped when building MacOS menus. Previously, corresponding MacOS items were first built and then deleted. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10105 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Sys_Menu_Bar.mm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/Fl_Sys_Menu_Bar.mm b/src/Fl_Sys_Menu_Bar.mm index e2bb478a8..5a58c87b4 100644 --- a/src/Fl_Sys_Menu_Bar.mm +++ b/src/Fl_Sys_Menu_Bar.mm @@ -289,7 +289,10 @@ static void createSubMenu( NSMenu *mh, pFl_Menu_Item &mm, const Fl_Menu_Item *m while ( mm->text ) { - char visible = mm->visible() ? 1 : 0; + if (!mm->visible() ) { // skip invisible items and submenus + mm = mm->next(0); + continue; + } miCnt = [FLMenuItem addNewItem:mm menu:submenu]; setMenuFlags( submenu, miCnt, mm ); setMenuShortcut( submenu, miCnt, mm ); @@ -311,9 +314,6 @@ static void createSubMenu( NSMenu *mh, pFl_Menu_Item &mm, const Fl_Menu_Item *m if ( flags & FL_MENU_DIVIDER ) { [submenu addItem:[NSMenuItem separatorItem]]; } - if ( !visible ) { - [submenu removeItem:[submenu itemAtIndex:miCnt]]; - } mm++; } } @@ -337,7 +337,10 @@ static void convertToMenuBar(const Fl_Menu_Item *mm) { if ( !mm || !mm->text ) break; - char visible = mm->visible() ? 1 : 0; + if (!mm->visible() ) { // skip invisible menus + mm = mm->next(0); + continue; + } rank = [FLMenuItem addNewItem:mm menu:fl_system_menu]; if ( mm->flags & FL_SUBMENU ) { @@ -348,9 +351,6 @@ static void convertToMenuBar(const Fl_Menu_Item *mm) const Fl_Menu_Item *smm = (Fl_Menu_Item*)mm->user_data_; createSubMenu(fl_system_menu, smm, mm); } - if ( !visible ) { - [fl_system_menu removeItem:[fl_system_menu itemAtIndex:rank]]; - } mm++; } } -- cgit v1.2.3