efl/scroll manager: stop clearing animators on every wheel event
authorMike Blumenkrantz <zmike@samsung.com>
Wed, 17 Jul 2019 13:33:05 +0000 (09:33 -0400)
committerSangHyeon Jade Lee <sh10233.lee@samsung.com>
Tue, 23 Jul 2019 05:02:34 +0000 (14:02 +0900)
if scrolling is supposed to continue then just reuse the existing animator
callback and avoid emitting a scroll,start/stop event pair for every new
input event

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9340

src/lib/elementary/efl_ui_scroll_manager.c

index a6bf0cd..dd924ed 100644 (file)
@@ -1555,10 +1555,11 @@ _scroll_manager_scrollto_y_animator_del(Efl_Ui_Scroll_Manager_Data *sd)
 static void
 _scroll_manager_scrollto_animator_add(Efl_Ui_Scroll_Manager_Data *sd, Evas_Coord sx, Evas_Coord sy, Evas_Coord x, Evas_Coord y, double tx, double ty, InterpType interp)
 {
-   _scroll_manager_scrollto_animator_del(sd);
-
-   if (!sd->pan_obj) return;
-   if (sd->freeze) return;
+   if (!sd->pan_obj || sd->freeze)
+     {
+        _scroll_manager_scrollto_animator_del(sd);
+        return;
+     }
    _scroll_manager_scrollto_x_animator_add(sd, sx, x, tx, interp);
    _scroll_manager_scrollto_y_animator_add(sd, sy, y, ty, interp);
 }