From 7eba1a99ed200442835dda675c7a65dc6e98c480 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 4 Aug 2017 16:23:38 -0400 Subject: [PATCH] track zone states and modify bryces accordingly --- src/bin/e_bryce.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/bin/e_bryce.c b/src/bin/e_bryce.c index 3cd6e5f68..7268a279d 100644 --- a/src/bin/e_bryce.c +++ b/src/bin/e_bryce.c @@ -1017,21 +1017,37 @@ _bryce_act_menu(E_Object *obj, const char *params EINA_UNUSED, E_Binding_Event_M } static Eina_Bool -_bryce_zone_add(void *d EINA_UNUSED, int t EINA_UNUSED, E_Event_Zone_Add *ev) +_bryce_zone_useful_geometry_changed(void *d EINA_UNUSED, int t EINA_UNUSED, E_Event_Zone_Move_Resize *ev) { Eina_List *l; Bryce *b; EINA_LIST_FOREACH(bryces->bryces, l, b) { - if (b->bryce) continue; - if (b->zone != ev->zone->num) continue; - _bryce_create(b, e_comp->elm); - evas_object_show(b->bryce); + if (b->bryce && (b->zone == ev->zone->num) && + (b->orient == E_GADGET_SITE_ORIENT_VERTICAL)) + _bryce_autosize(b); } return ECORE_CALLBACK_RENEW; } +static void +_bryce_comp_resize(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Eina_List *l; + Bryce *b; + + EINA_LIST_FOREACH(bryces->bryces, l, b) + { + if (e_comp_zone_number_get(b->zone)) + { + if (b->bryce) continue; + _bryce_create(b, e_comp->elm); + evas_object_show(b->bryce); + } + } +} + E_API Evas_Object * e_bryce_add(Evas_Object *parent, const char *name, E_Gadget_Site_Orient orient, E_Gadget_Site_Anchor an) { @@ -1321,7 +1337,8 @@ e_bryce_init(void) else bryces = E_NEW(Bryces, 1); - E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_ADD, _bryce_zone_add, NULL); + evas_object_event_callback_add(e_comp->canvas->resize_object, EVAS_CALLBACK_RESIZE, _bryce_comp_resize, NULL); + E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_USEFUL_GEOMETRY_CHANGED, _bryce_zone_useful_geometry_changed, NULL); } EINTERN void