ibar icon menu - set pass events on bg obj until it is fully shown
this needs an elm theme update fyi.
This commit is contained in:
parent
7474036140
commit
0ca6bd8b9d
|
@ -1060,12 +1060,22 @@ _ibar_cb_icon_menu_autodel(void *data, Evas_Object *obj EINA_UNUSED)
|
||||||
edje_object_signal_emit(ic->menu->o_bg, "e,action,hide", "e");
|
edje_object_signal_emit(ic->menu->o_bg, "e,action,hide", "e");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ibar_cb_icon_menu_shown(void *data, Evas_Object *obj EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
|
||||||
|
{
|
||||||
|
IBar_Icon *ic = data;
|
||||||
|
|
||||||
|
evas_object_pass_events_set(ic->menu->o_bg, 0);
|
||||||
|
fprintf(stderr, "bleh show\n");
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_ibar_cb_icon_menu_hidden(void *data, Evas_Object *obj EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
|
_ibar_cb_icon_menu_hidden(void *data, Evas_Object *obj EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
|
||||||
{
|
{
|
||||||
IBar_Icon *ic = data;
|
IBar_Icon *ic = data;
|
||||||
E_Client *ec;
|
E_Client *ec;
|
||||||
|
|
||||||
|
fprintf(stderr, "bleh hide\n");
|
||||||
E_OBJECT_DEL_SET(ic->menu, NULL);
|
E_OBJECT_DEL_SET(ic->menu, NULL);
|
||||||
E_FREE_FUNC(ic->menu, e_object_del);
|
E_FREE_FUNC(ic->menu, e_object_del);
|
||||||
E_FREE_FUNC(ic->hide_timer, ecore_timer_del);
|
E_FREE_FUNC(ic->hide_timer, ecore_timer_del);
|
||||||
|
@ -1108,7 +1118,7 @@ _ibar_cb_icon_menu_img_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EIN
|
||||||
evas_object_del(data);
|
evas_object_del(data);
|
||||||
if (eina_list_count(ic->exes) < 1)
|
if (eina_list_count(ic->exes) < 1)
|
||||||
{
|
{
|
||||||
evas_object_pass_events_set(ic->menu->comp_object, 1);
|
evas_object_pass_events_set(ic->menu->o_bg, 1);
|
||||||
edje_object_signal_emit(ic->menu->o_bg, "e,action,hide", "e");
|
edje_object_signal_emit(ic->menu->o_bg, "e,action,hide", "e");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1237,6 +1247,8 @@ _ibar_icon_menu(IBar_Icon *ic, Eina_Bool grab)
|
||||||
evas_object_event_callback_add(ic->menu->comp_object, EVAS_CALLBACK_MOUSE_OUT, _ibar_icon_menu_mouse_out, ic);
|
evas_object_event_callback_add(ic->menu->comp_object, EVAS_CALLBACK_MOUSE_OUT, _ibar_icon_menu_mouse_out, ic);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
edje_object_signal_callback_add(o, "e,action,show,done", "*",
|
||||||
|
_ibar_cb_icon_menu_shown, ic);
|
||||||
edje_object_signal_callback_add(o, "e,action,hide,done", "*",
|
edje_object_signal_callback_add(o, "e,action,hide,done", "*",
|
||||||
_ibar_cb_icon_menu_hidden, ic);
|
_ibar_cb_icon_menu_hidden, ic);
|
||||||
edje_object_signal_emit(o, "e,state,hidden", "e");
|
edje_object_signal_emit(o, "e,state,hidden", "e");
|
||||||
|
@ -1244,6 +1256,7 @@ _ibar_icon_menu(IBar_Icon *ic, Eina_Bool grab)
|
||||||
ic->ibar->menu_icon = ic;
|
ic->ibar->menu_icon = ic;
|
||||||
_ibar_icon_menu_recalc(ic);
|
_ibar_icon_menu_recalc(ic);
|
||||||
|
|
||||||
|
evas_object_pass_events_set(o, 1);
|
||||||
edje_object_signal_emit(o, "e,action,show", "e");
|
edje_object_signal_emit(o, "e,action,show", "e");
|
||||||
ic->menu_grabbed = grab;
|
ic->menu_grabbed = grab;
|
||||||
if (grab)
|
if (grab)
|
||||||
|
|
Loading…
Reference in New Issue