From eaf0a08ded0fdbd0f33b2e49238211562e2bbdb0 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Wed, 14 Jun 2017 14:53:39 +0900 Subject: [PATCH] ecore_evas_drm: transform the input event in ecore_drm side Change-Id: I8d54850a684e1f87d9879714681ab62844ae2509 --- src/lib/ecore_evas/ecore_evas.c | 22 +++++++++++++++++++++- src/lib/ecore_evas/ecore_evas_private.h | 3 +++ .../ecore_evas/engines/drm/ecore_evas_drm.c | 8 ++++++-- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c index 372b7f3..d9e46e7 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -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 diff --git a/src/lib/ecore_evas/ecore_evas_private.h b/src/lib/ecore_evas/ecore_evas_private.h index 875a526..94d5d81 100644 --- a/src/lib/ecore_evas/ecore_evas_private.h +++ b/src/lib/ecore_evas/ecore_evas_private.h @@ -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, diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c index 313dd85..9eeb185 100755 --- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c +++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c @@ -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; -- 2.7.4