diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2016-10-19 11:38:34 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2016-10-19 11:38:34 -0400 |
commit | 8bf7999c31dbaa31551767a257c9ddb6a018e86c (patch) | |
tree | db06a5332a5c4ab6942bdc876209cb0d224dd3f6 | |
parent | 2c4316633bbf470e84019ffb3e0638d663ea26c1 (diff) | |
download | enlightenment-8bf7999c31dbaa31551767a257c9ddb6a018e86c.tar.gz |
add gadget site sizing workaround to avoid elm box sizing desync
ref T4747
fix T4732
-rw-r--r-- | src/bin/e_gadget.c | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c index 6316a11d38..51fbf08eca 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); + } } } |