hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=22d800a40c54979ac345e470f8dc0044274922d7
commit 22d800a40c54979ac345e470f8dc0044274922d7 Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Mon Aug 4 19:46:03 2014 +0900 ctxpopup: Fix wrong popup size. Summary: In case, when ctxpopup content have larger size than parent object, (by height, width or both) was resized popup at the full width or height of parent object size. @fix Reviewers: raster, seoz, cedric, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D1266 --- src/lib/elc_ctxpopup.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/lib/elc_ctxpopup.c b/src/lib/elc_ctxpopup.c index 44d1884..fb19ca9 100644 --- a/src/lib/elc_ctxpopup.c +++ b/src/lib/elc_ctxpopup.c @@ -656,9 +656,20 @@ _elm_ctxpopup_elm_layout_sizing_eval(Eo *obj, Elm_Ctxpopup_Data *sd) if ((list_size.x >= rect.w) || (list_size.y >= rect.h)) { elm_list_mode_set(sd->list, ELM_LIST_COMPRESS); - evas_object_size_hint_min_set(sd->box, rect.w, rect.h); - evas_object_size_hint_min_set(obj, rect.w, rect.h); + evas_object_size_hint_min_set(obj, list_size.x, list_size.y); } + /* + Decrease height of main object initiate recalc of size (sizing_eval). + At each iteration of calculating size height of the object + will be closer to the height of the list. + */ + if (list_size.y < rect.h) rect.h--; + } + else if (sd->content) + { + evas_object_geometry_get(sd->content, 0, 0, &list_size.x, &list_size.y); + if ((list_size.x >= rect.w) || (list_size.y >= rect.h)) + evas_object_size_hint_min_set(obj, list_size.x, list_size.y); } evas_object_geometry_get(sd->parent, NULL, NULL, &parent_size.x, &parent_size.y); --