From: Hosang Kim Date: Tue, 3 Nov 2015 20:29:05 +0000 (-0800) Subject: interface_scrollable: delete unnecessary smart callback call. X-Git-Tag: upstream/1.16.0~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5cfe1cff12645a94a9fd529f560125e1716d213a;p=platform%2Fupstream%2Felementary.git interface_scrollable: delete unnecessary smart callback call. Summary: When _elm_interface_scrollable_page_bring_in is called, page is not changed yet. So "page,changed" smart callback is unnecessary. Sometimes "page,changed" smart callback is called twice. Because "drag,stop" and "anim,stop"is called it. So I add updating current page code. Test Plan: elementary_test -> scroller 1. using wheel. 2. using "prev page" and "next page". 3. draging sceen Reviewers: Hermet, singh.amitesh, cedric, raster, jaehwan, seoz Differential Revision: https://phab.enlightenment.org/D3260 Signed-off-by: Cedric BAIL --- diff --git a/src/lib/elm_interface_scrollable.c b/src/lib/elm_interface_scrollable.c index 23d0ebb..ab2db63 100644 --- a/src/lib/elm_interface_scrollable.c +++ b/src/lib/elm_interface_scrollable.c @@ -939,6 +939,8 @@ _elm_scroll_drag_stop(Elm_Scrollable_Smart_Interface_Data *sid) if (sid->cb_func.page_change && ((x != sid->current_page.x) || (y != sid->current_page.y))) sid->cb_func.page_change(sid->obj, NULL); + sid->current_page.x = x; + sid->current_page.y = y; } if (sid->cb_func.drag_stop) @@ -948,6 +950,9 @@ _elm_scroll_drag_stop(Elm_Scrollable_Smart_Interface_Data *sid) static void _elm_scroll_anim_start(Elm_Scrollable_Smart_Interface_Data *sid) { + sid->current_page.x = _elm_scroll_page_x_get(sid, 0, EINA_FALSE); + sid->current_page.y = _elm_scroll_page_y_get(sid, 0, EINA_FALSE); + if (sid->cb_func.animate_start) sid->cb_func.animate_start(sid->obj, NULL); } @@ -963,6 +968,8 @@ _elm_scroll_anim_stop(Elm_Scrollable_Smart_Interface_Data *sid) y = _elm_scroll_page_y_get(sid, 0, EINA_FALSE); if ((x != sid->current_page.x) || (y != sid->current_page.y)) sid->cb_func.page_change(sid->obj, NULL); + sid->current_page.x = x; + sid->current_page.y = y; } if (sid->cb_func.animate_stop) @@ -4395,9 +4402,6 @@ _elm_interface_scrollable_page_bring_in(Eo *obj, Elm_Scrollable_Smart_Interface_ Evas_Coord x = 0; Evas_Coord y = 0; - sid->current_page.x = _elm_scroll_page_x_get(sid, 0, EINA_FALSE); - sid->current_page.y = _elm_scroll_page_y_get(sid, 0, EINA_FALSE); - eo_do(sid->obj, elm_interface_scrollable_content_viewport_geometry_get (NULL, NULL, &w, &h)); x = sid->pagesize_h * pagenumber_h; @@ -4407,12 +4411,6 @@ _elm_interface_scrollable_page_bring_in(Eo *obj, Elm_Scrollable_Smart_Interface_ _elm_scroll_scroll_to_x(sid, _elm_config->bring_in_scroll_friction, x); _elm_scroll_scroll_to_y(sid, _elm_config->bring_in_scroll_friction, y); } - - if ((sid->current_page.x != x) || (sid->current_page.y != y)) - { - if (sid->cb_func.page_change) - sid->cb_func.page_change(sid->obj, NULL); - } } EOLIAN static void