discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ef2cb47daf20b31f82749cd8da5ee8e5a144e647
commit ef2cb47daf20b31f82749cd8da5ee8e5a144e647 Author: Mike Blumenkrantz <[email protected]> Date: Wed Oct 26 13:54:25 2016 -0400 handle no-orient gadget visibility based on site->events visibility --- src/bin/e_gadget.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c index cdda721..c103d68 100644 --- a/src/bin/e_gadget.c +++ b/src/bin/e_gadget.c @@ -188,6 +188,8 @@ _gadget_reparent(E_Gadget_Site *zgs, E_Gadget_Config *zgc) if (!zgs->orient) { 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; } switch (zgs->gravity) @@ -1159,6 +1161,22 @@ _site_style(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUS } 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 _site_create(E_Gadget_Site *zgs) { zgs->layout = elm_box_add(e_comp->elm); @@ -1183,6 +1201,11 @@ _site_create(E_Gadget_Site *zgs) evas_object_repeat_events_set(zgs->events, 1); evas_object_show(zgs->events); 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); E_LIST_FOREACH(zgs->gadgets, _gadget_object_create); --
