interface_scrollable: Invoke stop callback when animators are deleted on move event 90/176590/1
authorWonki Kim <wonki_.kim@samsung.com>
Wed, 18 Apr 2018 12:53:19 +0000 (21:53 +0900)
committerWonki Kim <wonki_.kim@samsung.com>
Wed, 18 Apr 2018 12:53:19 +0000 (21:53 +0900)
when animators are deleted on mouse move event, anim_stop callback is not invoked
this patch add logic to invoke it.

Change-Id: I1830c56e1a5b65f53a89488891f4531d9ff1638d
Signed-off-by: Wonki Kim <wonki_.kim@samsung.com>
src/lib/elm_interface_scrollable.c

index fac6349..87ba984 100644 (file)
@@ -3842,6 +3842,10 @@ _elm_scroll_mouse_move_event_cb(void *data,
    // TIZEN_ONLY(20160624): Overscroll effect
    edje_object_signal_emit(sid->edje_obj, "elm,state,mouse,move", "elm");
    //
+
+   // TIZEN_ONLY(20180418): invoke stop callback
+   Eina_Bool is_stopped = EINA_FALSE;
+   //
    if ((sid->scrollto.x.animator) && (!sid->hold) && (!sid->freeze) &&
        !(sid->block & ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL))
      {
@@ -3850,6 +3854,9 @@ _elm_scroll_mouse_move_event_cb(void *data,
         eo_do(sid->pan_obj, elm_obj_pan_pos_get(&px, NULL));
         sid->down.sx = px;
         sid->down.x = sid->down.history[0].x;
+        // TIZEN_ONLY(20180418): invoke stop callback
+        is_stopped = EINA_TRUE;
+        //
      }
 
    if ((sid->scrollto.y.animator) && (!sid->hold) && (!sid->freeze) &&
@@ -3860,8 +3867,18 @@ _elm_scroll_mouse_move_event_cb(void *data,
         eo_do(sid->pan_obj, elm_obj_pan_pos_get(NULL, &py));
         sid->down.sy = py;
         sid->down.y = sid->down.history[0].y;
+        // TIZEN_ONLY(20180418): invoke stop callback
+        is_stopped = EINA_TRUE;
+        //
      }
 
+   // TIZEN_ONLY(20180418): invoke stop callback
+   if (is_stopped)
+     {
+        _elm_scroll_anim_stop(sid);
+     }
+   //
+
 #ifdef SCROLLDBG
    DBG("::: %i %i\n", ev->cur.canvas.x, ev->cur.canvas.y);
 #endif