Calculate flick down/up event 02/147002/2
authorJunghoon Park <jh9216.park@samsung.com>
Thu, 31 Aug 2017 12:18:27 +0000 (21:18 +0900)
committerJunghoon Park <jh9216.park@samsung.com>
Thu, 31 Aug 2017 13:15:15 +0000 (22:15 +0900)
- The speed can be calculated by position y, because each move event will be
  sent after every 10ms
- Once flick down/up event happen, move event can be ignored to support lagacy
  apps

Change-Id: I71e8f839ca9544a9667d6abadd980eb525368a1a
Signed-off-by: Junghoon Park <jh9216.park@samsung.com>
screen_connector_watcher_evas/src/screen_connector_toolkit_evas.c

index 8c5544b..dec5059 100644 (file)
@@ -69,6 +69,8 @@ struct _screen_connector_toolkit_evas_h {
        visibility_type auto_visibility;
        int bind_win_id;
        screen_connector_screen_type_e screen_type;
+       bool flick;
+       int prev_y;
        void *data;
 };
 
@@ -523,6 +525,8 @@ static void __rs_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *even
        evas_object_geometry_get(obj, &x, &y, &w, &h);
 
        LOGD("mouse down: %d %d", ev->canvas.x - x, ev->canvas.y - y);
+       toolkit_evas_h->flick = false;
+       toolkit_evas_h->prev_y = ev->canvas.y - y;
 
        if (desc == NULL)
                desc = "";
@@ -722,6 +726,7 @@ static void __rs_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *even
        int w;
        int h;
        struct tizen_remote_surface *surface;
+       int delta_y;
 
        evas_object_geometry_get(obj, &x, &y, &w, &h);
 
@@ -742,6 +747,21 @@ static void __rs_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *even
                return;
        }
 
+       if (toolkit_evas_h->flick) {
+               LOGD("flick event");
+               return;
+       }
+
+       delta_y = ev->cur.canvas.y - y - toolkit_evas_h->prev_y;
+       if (delta_y < 0)
+               delta_y *= -1;
+
+       if (delta_y > 10) {
+               toolkit_evas_h->flick = true;
+               return;
+       }
+
+       toolkit_evas_h->prev_y = ev->cur.canvas.y - y;
        tizen_remote_surface_transfer_mouse_event(surface,
                        TIZEN_REMOTE_SURFACE_EVENT_TYPE_MOUSE_MOVE,
                        0,