Enlightenment CVS committal Author : englebass Project : e17 Module : libs/efreet
Dir : e17/libs/efreet/src/lib Modified Files: efreet_menu.c Log Message: A submenu needs real entries to be non empty. =================================================================== RCS file: /cvs/e/e17/libs/efreet/src/lib/efreet_menu.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- efreet_menu.c 4 Nov 2007 09:32:35 -0000 1.25 +++ efreet_menu.c 17 Jan 2008 22:38:46 -0000 1.26 @@ -264,6 +264,7 @@ static Efreet_Menu *efreet_menu_layout_desktop(Efreet_Menu_Desktop *md); static void efreet_menu_layout_entries_get(Efreet_Menu *entry, Efreet_Menu_Internal *internal, Efreet_Menu_Layout *layout); +static int efreet_menu_layout_is_empty(Efreet_Menu *entry); static Efreet_Menu_Internal *efreet_menu_internal_new(void); static void efreet_menu_internal_free(Efreet_Menu_Internal *internal); @@ -3712,7 +3713,7 @@ if (!(sub->directory && sub->directory->no_display) && !sub->deleted) { sub_entry = efreet_menu_layout_menu(sub); - if (!show_empty && !sub_entry->entries) + if (!show_empty && efreet_menu_layout_is_empty(sub_entry)) efreet_menu_free(sub_entry); else if (in_line && ((inline_limit == 0) || @@ -3815,7 +3816,7 @@ if (!sub_entry) { sub_entry = efreet_menu_layout_menu(sub); - if (!internal->show_empty && !sub_entry->entries) + if (!internal->show_empty && efreet_menu_layout_is_empty(sub_entry)) efreet_menu_free(sub_entry); else if (internal->in_line && ((internal->inline_limit == 0) || @@ -3909,4 +3910,20 @@ efreet_menu_cb_move_compare(Efreet_Menu_Move *move, const char *old) { return ecore_str_compare(move->old_name, old); +} + +static int +efreet_menu_layout_is_empty(Efreet_Menu *entry) +{ + Efreet_Menu *sub_entry; + + if (!entry->entries) return 1; + + ecore_list_first_goto(entry->entries); + while ((sub_entry = ecore_list_next(entry->entries))) + { + if (sub_entry->type == EFREET_MENU_ENTRY_MENU) return 0; + if (sub_entry->type == EFREET_MENU_ENTRY_DESKTOP) return 0; + } + return 1; } ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs