From 620dee054b3835c010dc29b5817ae8d812692a17 Mon Sep 17 00:00:00 2001 From: Jaehwan Kim Date: Mon, 8 Apr 2013 13:44:39 +0900 Subject: [PATCH] Fix the scroller show by a page if the page size is set and the region_bring_in or region_show is called. --- legacy/elementary/ChangeLog | 4 ++++ legacy/elementary/NEWS | 1 + .../src/lib/elm_interface_scrollable.c | 17 +++++++++++++++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/legacy/elementary/ChangeLog b/legacy/elementary/ChangeLog index 89177edd76..9736dc1306 100644 --- a/legacy/elementary/ChangeLog +++ b/legacy/elementary/ChangeLog @@ -1212,3 +1212,7 @@ 2013-04-08 Jaehwan Kim * Quit the scroll animator if the scroller don't have a bounce and reach a edge. + +2013-04-08 Jaehwan Kim + + * Fix the scroller show by a page if the page size is set and the region_bring_in or region_show is called. diff --git a/legacy/elementary/NEWS b/legacy/elementary/NEWS index 1d909ab4e9..b0cc27fda2 100644 --- a/legacy/elementary/NEWS +++ b/legacy/elementary/NEWS @@ -199,6 +199,7 @@ Fixes: * Fix box layout bug when items with max size force sizes below minimum. * Fix ctxpopup geometry when parent is an elm_win. * Quit the scroll animator if the scroller don't have a bounce and reach a edge. + * Fix the scroller show by a page if the page size is set and the region_bring_in or region_show is called. Removals: diff --git a/legacy/elementary/src/lib/elm_interface_scrollable.c b/legacy/elementary/src/lib/elm_interface_scrollable.c index b582b9a7ad..757b72bd1a 100644 --- a/legacy/elementary/src/lib/elm_interface_scrollable.c +++ b/legacy/elementary/src/lib/elm_interface_scrollable.c @@ -33,6 +33,11 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = { }; static void _elm_pan_content_set(Evas_Object *, Evas_Object *); +static Eina_Bool _paging_is_enabled(Elm_Scrollable_Smart_Interface_Data *sid); +static Evas_Coord +_elm_scroll_page_x_get(Elm_Scrollable_Smart_Interface_Data *sid, int offset); +static Evas_Coord +_elm_scroll_page_y_get(Elm_Scrollable_Smart_Interface_Data *sid, int offset); static void _elm_pan_update(Elm_Pan_Smart_Data *psd) @@ -1702,10 +1707,18 @@ _elm_scroll_content_region_show_internal(Evas_Object *obj, _elm_scroll_wanted_region_set(sid->obj); } - x = nx; + if (_paging_is_enabled(sid)) + { + x = _elm_scroll_page_x_get(sid, nx - px); + y = _elm_scroll_page_y_get(sid, ny - py); + } + else + { + x = nx; + y = ny; + } if ((x + pw) > cw) x = cw - pw; if (x < minx) x = minx; - y = ny; if ((y + ph) > ch) y = ch - ph; if (y < miny) y = miny;