discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=8bf7999c31dbaa31551767a257c9ddb6a018e86c

commit 8bf7999c31dbaa31551767a257c9ddb6a018e86c
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Wed Oct 19 11:38:34 2016 -0400

    add gadget site sizing workaround to avoid elm box sizing desync
    
    ref T4747
    
    fix T4732
---
 src/bin/e_gadget.c | 27 +++++++++++++++++++++++----
 1 file changed, 23 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c
index 6316a11..51fbf08 100644
--- a/src/bin/e_gadget.c
+++ b/src/bin/e_gadget.c
@@ -454,7 +454,10 @@ _site_layout_orient(Evas_Object *o, E_Gadget_Site *zgs)
    Eina_List *l;
    double ax, ay;
    E_Gadget_Config *zgc;
+   int mw, mh, sw, sh;
 
+   evas_object_size_hint_min_get(o, &mw, &mh);
+   evas_object_size_hint_min_get(zgs->layout, &sw, &sh);
    evas_object_geometry_get(o, &x, &y, &w, &h);
    evas_object_geometry_set(zgs->events, x, y, w, h);
 
@@ -520,9 +523,14 @@ _site_layout_orient(Evas_Object *o, E_Gadget_Site *zgs)
    else if (IS_VERT(zgs->orient))
      zgs->cur_size = abs(yy - y);
 
-   evas_object_size_hint_min_set(o,
-     IS_HORIZ(zgs->orient) ? zgs->cur_size : w,
-     IS_VERT(zgs->orient) ? zgs->cur_size : h);
+   w = IS_HORIZ(zgs->orient) ? zgs->cur_size : w;
+   h = IS_VERT(zgs->orient) ? zgs->cur_size : h;
+   if ((w == mw) && (h == mh) && (sw == sh) && (sw == -1))
+     {
+        /* FIXME: https://phab.enlightenment.org/T4747 */
+        evas_object_size_hint_min_set(o, -1, -1);
+     }
+   evas_object_size_hint_min_set(o, w, h);
 }
 
 static void
@@ -599,7 +607,18 @@ _site_layout(Evas_Object *o, Evas_Object_Box_Data *priv 
EINA_UNUSED, void *data)
           py = gy + (-ay * oh);
 #endif
         if (eina_list_count(zgs->gadgets) == 1)
-          evas_object_size_hint_min_set(o, ow, oh);
+          {
+             int mw, mh, sw, sh;
+
+             evas_object_size_hint_min_get(o, &mw, &mh);
+             evas_object_size_hint_min_get(zgs->layout, &sw, &sh);
+             if ((ow == mw) && (oh == mh) && (sw == sh) && (sw == -1))
+               {
+                  /* FIXME: https://phab.enlightenment.org/T4747 */
+                  evas_object_size_hint_min_set(o, -1, -1);
+               }
+             evas_object_size_hint_min_set(o, ow, oh);
+          }
      }
 }
 

-- 


Reply via email to