discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=46cad09e3e2f7aa6d89b661b4745c60f1e199348

commit 46cad09e3e2f7aa6d89b661b4745c60f1e199348
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Wed Nov 2 11:16:57 2016 -0400

    force gadget site recalc from style object if gadget's hints change
    
    ensure that these intermediate objects trigger recalcs as expected
    
    fix T4809
---
 src/bin/e_gadget.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c
index 2aceb4d..1c03a45 100644
--- a/src/bin/e_gadget.c
+++ b/src/bin/e_gadget.c
@@ -1613,6 +1613,13 @@ e_gadget_drop_handler_add(Evas_Object *g, void *data,
    return drop_object;
 }
 
+static void
+_gadget_style_hints(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+   E_Gadget_Config *zgc = data;
+   evas_object_smart_need_recalculate_set(zgc->site->layout, 1);
+}
+
 E_API Evas_Object *
 e_gadget_util_layout_style_init(Evas_Object *g, Evas_Object *style)
 {
@@ -1647,6 +1654,7 @@ e_gadget_util_layout_style_init(Evas_Object *g, 
Evas_Object *style)
           elm_box_unpack(zgc->site->layout, prev);
      }
    evas_object_raise(zgc->site->events);
+   evas_object_event_callback_del(prev, EVAS_CALLBACK_CHANGED_SIZE_HINTS, 
_gadget_style_hints);
    if (!style) return prev;
 
    evas_object_data_set(style, "__e_gadget", zgc);
@@ -1654,6 +1662,7 @@ e_gadget_util_layout_style_init(Evas_Object *g, 
Evas_Object *style)
    elm_layout_sizing_eval(style);
    evas_object_smart_calculate(style);
    evas_object_size_hint_min_get(style, &zgc->style.minw, &zgc->style.minh);
+   evas_object_event_callback_add(style, EVAS_CALLBACK_CHANGED_SIZE_HINTS, 
_gadget_style_hints, zgc);
    evas_object_show(style);
    evas_object_smart_callback_add(zgc->display, "gadget_popup", _gadget_popup, 
zgc->site);
    return prev;

-- 


Reply via email to