forked from enlightenment/efl
A submenu needs real entries to be non empty.
SVN revision: 33513
This commit is contained in:
parent
955a961c57
commit
1683d650d4
|
@ -264,6 +264,7 @@ static Efreet_Menu *efreet_menu_layout_menu(Efreet_Menu_Internal *internal);
|
||||||
static Efreet_Menu *efreet_menu_layout_desktop(Efreet_Menu_Desktop *md);
|
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,
|
static void efreet_menu_layout_entries_get(Efreet_Menu *entry, Efreet_Menu_Internal *internal,
|
||||||
Efreet_Menu_Layout *layout);
|
Efreet_Menu_Layout *layout);
|
||||||
|
static int efreet_menu_layout_is_empty(Efreet_Menu *entry);
|
||||||
|
|
||||||
static Efreet_Menu_Internal *efreet_menu_internal_new(void);
|
static Efreet_Menu_Internal *efreet_menu_internal_new(void);
|
||||||
static void efreet_menu_internal_free(Efreet_Menu_Internal *internal);
|
static void efreet_menu_internal_free(Efreet_Menu_Internal *internal);
|
||||||
|
@ -3712,7 +3713,7 @@ efreet_menu_layout_entries_get(Efreet_Menu *entry, Efreet_Menu_Internal *interna
|
||||||
if (!(sub->directory && sub->directory->no_display) && !sub->deleted)
|
if (!(sub->directory && sub->directory->no_display) && !sub->deleted)
|
||||||
{
|
{
|
||||||
sub_entry = efreet_menu_layout_menu(sub);
|
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);
|
efreet_menu_free(sub_entry);
|
||||||
else if (in_line &&
|
else if (in_line &&
|
||||||
((inline_limit == 0) ||
|
((inline_limit == 0) ||
|
||||||
|
@ -3815,7 +3816,7 @@ efreet_menu_layout_entries_get(Efreet_Menu *entry, Efreet_Menu_Internal *interna
|
||||||
if (!sub_entry)
|
if (!sub_entry)
|
||||||
{
|
{
|
||||||
sub_entry = efreet_menu_layout_menu(sub);
|
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);
|
efreet_menu_free(sub_entry);
|
||||||
else if (internal->in_line &&
|
else if (internal->in_line &&
|
||||||
((internal->inline_limit == 0) ||
|
((internal->inline_limit == 0) ||
|
||||||
|
@ -3910,3 +3911,19 @@ efreet_menu_cb_move_compare(Efreet_Menu_Move *move, const char *old)
|
||||||
{
|
{
|
||||||
return ecore_str_compare(move->old_name, 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;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue