diff options
author | Jaehwan Kim <jae.hwan.kim@samsung.com> | 2013-04-08 13:39:24 +0900 |
---|---|---|
committer | Jaehwan Kim <jae.hwan.kim@samsung.com> | 2013-04-08 14:07:58 +0900 |
commit | efe24dd2e076dc7f9d88ca87962a5b6d59619ec2 (patch) | |
tree | 268666eeb24e263d014da350235b84a15ec09aa6 | |
parent | 93041c1ddb850a75b3c8e2bc8afaa4bb460f9d63 (diff) | |
download | elementary-efe24dd2e076dc7f9d88ca87962a5b6d59619ec2.tar.gz |
Fix the scroller show by a page if the page size is set and the region_bring_in or region_show is called.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | src/lib/elm_interface_scrollable.c | 17 |
3 files changed, 20 insertions, 2 deletions
@@ -804,3 +804,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. @@ -4,6 +4,7 @@ Changes since Elementary 1.7.6: Fixes: * 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. Elementary 1.7.6 diff --git a/src/lib/elm_interface_scrollable.c b/src/lib/elm_interface_scrollable.c index 42bdeb2b6..ded753bb1 100644 --- a/src/lib/elm_interface_scrollable.c +++ b/src/lib/elm_interface_scrollable.c @@ -33,6 +33,11 @@ ELM_INTERNAL_SMART_SUBCLASS_NEW evas_object_smart_clipped_class_get, _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); EAPI const Elm_Pan_Smart_Class * elm_pan_smart_class_get(void) @@ -1602,10 +1607,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; |