e_shelf: lock whenever its menu is active.
Anytime shelf appends its submenu, it will lock shelf so it's not hidden automatically. Unlock happens as soon as the menu item is deleted. SVN revision: 38529
This commit is contained in:
parent
05402668aa
commit
af9c9c7df0
|
@ -1082,6 +1082,13 @@ _e_shelf_toggle_border_fix(E_Shelf *es)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_shelf_menu_item_free(void *data)
|
||||||
|
{
|
||||||
|
E_Shelf *es = e_object_data_get(data);
|
||||||
|
e_shelf_locked_set(es, 0);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_shelf_menu_append(E_Shelf *es, E_Menu *mn)
|
_e_shelf_menu_append(E_Shelf *es, E_Menu *mn)
|
||||||
{
|
{
|
||||||
|
@ -1093,12 +1100,16 @@ _e_shelf_menu_append(E_Shelf *es, E_Menu *mn)
|
||||||
name = es->name;
|
name = es->name;
|
||||||
if (!name) name = _("Shelf #");
|
if (!name) name = _("Shelf #");
|
||||||
snprintf(buf, sizeof(buf), "%s %i", name, es->id);
|
snprintf(buf, sizeof(buf), "%s %i", name, es->id);
|
||||||
|
|
||||||
|
e_shelf_locked_set(es, 1);
|
||||||
|
|
||||||
subm = e_menu_new();
|
subm = e_menu_new();
|
||||||
mi = e_menu_item_new(mn);
|
mi = e_menu_item_new(mn);
|
||||||
e_menu_item_label_set(mi, buf);
|
e_menu_item_label_set(mi, buf);
|
||||||
e_util_menu_item_edje_icon_set(mi, "enlightenment/shelf");
|
e_util_menu_item_edje_icon_set(mi, "enlightenment/shelf");
|
||||||
e_menu_pre_activate_callback_set(subm, _e_shelf_menu_pre_cb, es);
|
e_menu_pre_activate_callback_set(subm, _e_shelf_menu_pre_cb, es);
|
||||||
|
e_object_free_attach_func_set(E_OBJECT(mi), _e_shelf_menu_item_free);
|
||||||
|
e_object_data_set(E_OBJECT(mi), es);
|
||||||
e_menu_item_submenu_set(mi, subm);
|
e_menu_item_submenu_set(mi, subm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue