From bd8b8874284376dc3df125897d71b17816e4a063 Mon Sep 17 00:00:00 2001 From: Jaeun Choi Date: Tue, 2 Sep 2014 16:06:08 +0900 Subject: [PATCH] panel: resize scrollable content in content_size_set API in elm_panel_scrollable_content_size_set, not only update size ratio variable but also resize scrollable content @fix --- legacy/elementary/src/lib/elm_panel.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/legacy/elementary/src/lib/elm_panel.c b/legacy/elementary/src/lib/elm_panel.c index c4ac456632..e1c8c0c437 100644 --- a/legacy/elementary/src/lib/elm_panel.c +++ b/legacy/elementary/src/lib/elm_panel.c @@ -1259,9 +1259,31 @@ _elm_panel_elm_widget_disable(Eo *obj, Elm_Panel_Data *sd) } EOLIAN static void -_elm_panel_scrollable_content_size_set(Eo *obj EINA_UNUSED, Elm_Panel_Data *sd, double ratio) +_elm_panel_scrollable_content_size_set(Eo *obj, Elm_Panel_Data *sd, double ratio) { + Evas_Coord w, h; sd->content_size_ratio = ratio; + evas_object_geometry_get(obj, NULL, NULL, &w, &h); + + switch (sd->orient) + { + case ELM_PANEL_ORIENT_TOP: + case ELM_PANEL_ORIENT_BOTTOM: + // vertical + evas_object_resize(sd->scr_ly, w, (1 + sd->content_size_ratio) * h); + evas_object_size_hint_min_set(sd->scr_panel, w, (sd->content_size_ratio * h)); + evas_object_size_hint_min_set(sd->scr_event, w, h); + break; + case ELM_PANEL_ORIENT_LEFT: + case ELM_PANEL_ORIENT_RIGHT: + // horizontal + evas_object_resize(sd->scr_ly, (1 + sd->content_size_ratio) * w, h); + evas_object_size_hint_min_set(sd->scr_panel, (sd->content_size_ratio * w), h); + evas_object_size_hint_min_set(sd->scr_event, w, h); + break; + } + + ecore_animator_add(_elm_panel_anim_cb, obj); } EOLIAN static void