forked from enlightenment/enlightenment
ibar mouseover menu no longer breaks when client menu is activated
This commit is contained in:
parent
ad6aa3db71
commit
ee1cc930c1
|
@ -885,6 +885,19 @@ _ibar_icon_notinorder_new(IBar *b, E_Exec_Instance *exe)
|
||||||
return ic;
|
return ic;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ibar_cb_icon_menu_client_menu_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
IBar *b = data;
|
||||||
|
|
||||||
|
evas_object_event_callback_del(obj, EVAS_CALLBACK_HIDE, _ibar_cb_icon_menu_client_menu_del);
|
||||||
|
if (!b->menu_icon) return;
|
||||||
|
if (b->menu_icon->hide_timer)
|
||||||
|
ecore_timer_reset(b->menu_icon->hide_timer);
|
||||||
|
else
|
||||||
|
b->menu_icon->hide_timer = ecore_timer_add(0.5, _ibar_cb_out_hide_delay, b->menu_icon);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_ibar_icon_free(IBar_Icon *ic)
|
_ibar_icon_free(IBar_Icon *ic)
|
||||||
{
|
{
|
||||||
|
@ -923,8 +936,16 @@ _ibar_icon_free(IBar_Icon *ic)
|
||||||
ic->ibar->ic_drop_before = NULL;
|
ic->ibar->ic_drop_before = NULL;
|
||||||
_ibar_icon_empty(ic);
|
_ibar_icon_empty(ic);
|
||||||
EINA_LIST_FREE(ic->exes, inst)
|
EINA_LIST_FREE(ic->exes, inst)
|
||||||
if (!ic->not_in_order)
|
{
|
||||||
e_exec_instance_watcher_del(inst, _ibar_instance_watch, ic);
|
E_Client *ec;
|
||||||
|
Eina_List *ll;
|
||||||
|
|
||||||
|
if (!ic->not_in_order)
|
||||||
|
e_exec_instance_watcher_del(inst, _ibar_instance_watch, ic);
|
||||||
|
EINA_LIST_FOREACH(inst->clients, ll, ec)
|
||||||
|
if (ec->border_menu)
|
||||||
|
evas_object_event_callback_del(ec->border_menu->comp_object, EVAS_CALLBACK_HIDE, _ibar_cb_icon_menu_client_menu_del);
|
||||||
|
}
|
||||||
evas_object_del(ic->o_holder);
|
evas_object_del(ic->o_holder);
|
||||||
evas_object_del(ic->o_holder2);
|
evas_object_del(ic->o_holder2);
|
||||||
if (ic->exe_inst)
|
if (ic->exe_inst)
|
||||||
|
@ -1093,6 +1114,7 @@ _ibar_cb_icon_menu_mouse_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, v
|
||||||
if (ev->button == 3)
|
if (ev->button == 3)
|
||||||
{
|
{
|
||||||
e_int_client_menu_show(ec, ev->canvas.x, ev->canvas.y, 0, ev->timestamp);
|
e_int_client_menu_show(ec, ev->canvas.x, ev->canvas.y, 0, ev->timestamp);
|
||||||
|
evas_object_event_callback_add(ec->border_menu->comp_object, EVAS_CALLBACK_HIDE, _ibar_cb_icon_menu_client_menu_del, ic->ibar);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
e_client_activate(ec, 1);
|
e_client_activate(ec, 1);
|
||||||
|
@ -1366,6 +1388,7 @@ _ibar_icon_menu_hide(IBar_Icon *ic, Eina_Bool grab)
|
||||||
ic->menu_grabbed = EINA_FALSE;
|
ic->menu_grabbed = EINA_FALSE;
|
||||||
evas_object_pass_events_set(ic->menu->comp_object, 1);
|
evas_object_pass_events_set(ic->menu->comp_object, 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");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
|
|
Loading…
Reference in New Issue