forked from enlightenment/enlightenment
handle no-orient gadget visibility based on site->events visibility
This commit is contained in:
parent
87515abd2a
commit
ef2cb47daf
|
@ -188,6 +188,8 @@ _gadget_reparent(E_Gadget_Site *zgs, E_Gadget_Config *zgc)
|
||||||
if (!zgs->orient)
|
if (!zgs->orient)
|
||||||
{
|
{
|
||||||
evas_object_layer_set(zgc->display, evas_object_layer_get(zgs->layout));
|
evas_object_layer_set(zgc->display, evas_object_layer_get(zgs->layout));
|
||||||
|
if (evas_object_visible_get(zgs->events))
|
||||||
|
evas_object_show(zgc->display);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
switch (zgs->gravity)
|
switch (zgs->gravity)
|
||||||
|
@ -1158,6 +1160,22 @@ _site_style(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUS
|
||||||
zgc->site->style_cb(zgc->site->layout, zgc->style.name, zgc->gadget);
|
zgc->site->style_cb(zgc->site->layout, zgc->style.name, zgc->gadget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_site_visibility(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
E_Gadget_Site *zgs = data;
|
||||||
|
E_Gadget_Config *zgc;
|
||||||
|
Eina_List *l;
|
||||||
|
Eina_Bool vis = evas_object_visible_get(obj);
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(zgs->gadgets, l, zgc)
|
||||||
|
if (zgc->display)
|
||||||
|
{
|
||||||
|
if (vis) evas_object_show(zgc->display);
|
||||||
|
else evas_object_hide(zgc->display);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_site_create(E_Gadget_Site *zgs)
|
_site_create(E_Gadget_Site *zgs)
|
||||||
{
|
{
|
||||||
|
@ -1183,6 +1201,11 @@ _site_create(E_Gadget_Site *zgs)
|
||||||
evas_object_repeat_events_set(zgs->events, 1);
|
evas_object_repeat_events_set(zgs->events, 1);
|
||||||
evas_object_show(zgs->events);
|
evas_object_show(zgs->events);
|
||||||
evas_object_event_callback_add(zgs->events, EVAS_CALLBACK_MOUSE_DOWN, _site_mouse_down, zgs);
|
evas_object_event_callback_add(zgs->events, EVAS_CALLBACK_MOUSE_DOWN, _site_mouse_down, zgs);
|
||||||
|
if (!zgs->orient)
|
||||||
|
{
|
||||||
|
evas_object_event_callback_add(zgs->layout, EVAS_CALLBACK_SHOW, _site_visibility, zgs);
|
||||||
|
evas_object_event_callback_add(zgs->layout, EVAS_CALLBACK_HIDE, _site_visibility, zgs);
|
||||||
|
}
|
||||||
|
|
||||||
evas_object_data_set(zgs->layout, "__e_gadget_site", zgs);
|
evas_object_data_set(zgs->layout, "__e_gadget_site", zgs);
|
||||||
E_LIST_FOREACH(zgs->gadgets, _gadget_object_create);
|
E_LIST_FOREACH(zgs->gadgets, _gadget_object_create);
|
||||||
|
|
Loading…
Reference in New Issue