ecore_evas_drm: transform the input event in ecore_drm side 85/133985/1
authorBoram Park <boram1288.park@samsung.com>
Wed, 14 Jun 2017 05:53:39 +0000 (14:53 +0900)
committerBoram Park <boram1288.park@samsung.com>
Wed, 14 Jun 2017 06:26:55 +0000 (15:26 +0900)
Change-Id: I8d54850a684e1f87d9879714681ab62844ae2509

src/lib/ecore_evas/ecore_evas.c
src/lib/ecore_evas/ecore_evas_private.h
src/modules/ecore_evas/engines/drm/ecore_evas_drm.c

index 372b7f3..d9e46e7 100644 (file)
@@ -3461,11 +3461,11 @@ EAPI void
 _ecore_evas_mouse_move_with_multi_info_process(Ecore_Evas *ee, int x, int y, unsigned int timestamp, double radius, double radius_x, double radius_y, double pressure, double angle)
 {
    int fx, fy, fw, fh;
+
    ee->mouse.x = x;
    ee->mouse.y = y;
 
    evas_output_framespace_get(ee->evas, &fx, &fy, &fw, &fh);
-
    if (ee->prop.cursor.object)
      {
         evas_object_show(ee->prop.cursor.object);
@@ -3495,6 +3495,26 @@ _ecore_evas_mouse_move_with_multi_info_process(Ecore_Evas *ee, int x, int y, uns
    else if (ee->rotation == 270)
      evas_event_input_mouse_move_with_multi_info(ee->evas, y, ee->w + fh - x - 1, timestamp, NULL, radius, radius_x, radius_y, pressure, angle);
 }
+
+EAPI void
+_ecore_evas_mouse_move_with_multi_info_process2(Ecore_Evas *ee, int x, int y, unsigned int timestamp, double radius, double radius_x, double radius_y, double pressure, double angle)
+{
+   int fx, fy, fw, fh;
+
+   ee->mouse.x = x;
+   ee->mouse.y = y;
+
+   evas_output_framespace_get(ee->evas, &fx, &fy, &fw, &fh);
+   if (ee->prop.cursor.object)
+     {
+        evas_object_show(ee->prop.cursor.object);
+        evas_object_move(ee->prop.cursor.object,
+                         x - fx - ee->prop.cursor.hot.x,
+                         y - fy - ee->prop.cursor.hot.y);
+     }
+
+   evas_event_input_mouse_move_with_multi_info(ee->evas, x, y, timestamp, NULL, radius, radius_x, radius_y, pressure, angle);
+}
 //
 
 EAPI void
index 875a526..94d5d81 100644 (file)
@@ -386,6 +386,9 @@ EAPI void _ecore_evas_mouse_move_process(Ecore_Evas *ee, int x, int y, unsigned
 // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
 EAPI void _ecore_evas_mouse_move_with_multi_info_process(Ecore_Evas *ee, int x, int y, unsigned int timestamp,
                                                     double radius, double radius_x, double radius_y, double pressure, double angle);
+EAPI void _ecore_evas_mouse_move_with_multi_info_process2(Ecore_Evas *ee, int x, int y, unsigned int timestamp,
+                                                    double radius, double radius_x, double radius_y, double pressure, double angle);
+
 //
 EAPI void _ecore_evas_mouse_multi_move_process(Ecore_Evas *ee, int device,
                                           int x, int y,
index 313dd85..9eeb185 100755 (executable)
@@ -381,7 +381,7 @@ ecore_evas_drm_new_internal(const char *device, unsigned int parent EINA_UNUSED,
 #endif
    // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
    ecore_event_window_register_with_multi(ee->prop.window, ee, ee->evas,
-                                         (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+                                         (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process2,
                                          (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
                                          (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
                                          (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
@@ -614,7 +614,7 @@ ecore_evas_gl_drm_new_internal(const char *device, unsigned int parent EINA_UNUS
 #endif
    // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
    ecore_event_window_register_with_multi(ee->prop.window, ee, ee->evas,
-                                         (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+                                         (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process2,
                                          (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
                                          (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
                                          (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
@@ -861,6 +861,10 @@ _ecore_evas_drm_rotation_set(Ecore_Evas *ee, int rotation, int resize)
 
    if (ee->rotation == rotation) return;
 
+   /* rotate the input events in ecore_drm */
+   if (dev)
+     ecore_drm_device_touch_rotation_set(dev, rotation);
+
    /* calculate difference in rotation */
    rot_dif = ee->rotation - rotation;
    if (rot_dif < 0) rot_dif = -rot_dif;