ecore_evas, ecore_wayland : enable pointer warp 43/69243/5 accepted/tizen/common/20160517.173821 accepted/tizen/ivi/20160516.091703 accepted/tizen/mobile/20160516.091730 accepted/tizen/tv/20160516.091603 accepted/tizen/wearable/20160516.091718 submit/tizen/20160516.024826
authorSung-Jin Park <sj76.park@samsung.com>
Thu, 12 May 2016 08:53:38 +0000 (17:53 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Fri, 13 May 2016 08:59:14 +0000 (01:59 -0700)
Change-Id: I23b15cfc87ec50bbc01422e3a9a8e3c615f94a7c
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
src/lib/ecore_wayland/Ecore_Wayland.h
src/lib/ecore_wayland/ecore_wl_window.c
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c

index b332084..42aae28 100644 (file)
@@ -787,6 +787,7 @@ EAPI Ecore_Wl_Window *ecore_wl_window_find(unsigned int id);
 EAPI Ecore_Wl_Window_Type ecore_wl_window_type_get(Ecore_Wl_Window *win);
 EAPI void ecore_wl_window_type_set(Ecore_Wl_Window *win, Ecore_Wl_Window_Type type);
 EAPI void ecore_wl_window_pointer_set(Ecore_Wl_Window *win, struct wl_surface *surface, int hot_x, int hot_y);
+EAPI Eina_Bool ecore_wl_window_pointer_warp(Ecore_Wl_Window *win, int x, int y);
 EAPI void ecore_wl_window_cursor_from_name_set(Ecore_Wl_Window *win, const char *cursor_name);
 EAPI void ecore_wl_window_cursor_default_restore(Ecore_Wl_Window *win);
 EAPI void ecore_wl_window_parent_set(Ecore_Wl_Window *win, Ecore_Wl_Window *parent);
index 7da2e8b..f020531 100644 (file)
@@ -935,6 +935,20 @@ ecore_wl_window_pointer_set(Ecore_Wl_Window *win, struct wl_surface *surface, in
      ecore_wl_input_pointer_set(input, surface, hot_x, hot_y);
 }
 
+EAPI Eina_Bool
+ecore_wl_window_pointer_warp(Ecore_Wl_Window *win, int x, int y)
+{
+   LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+   if (!win || !win->surface || !win->visible) return EINA_FALSE;
+   if (!_ecore_wl_disp->wl.tz_input_device_manager) return EINA_FALSE;
+
+   tizen_input_device_manager_pointer_warp(_ecore_wl_disp->wl.tz_input_device_manager,
+                                           win->surface, wl_fixed_from_int(x), wl_fixed_from_int(y));
+
+   return EINA_TRUE;
+}
+
 EAPI void
 ecore_wl_window_cursor_from_name_set(Ecore_Wl_Window *win, const char *cursor_name)
 {
index e5cb765..b69c648 100644 (file)
@@ -1138,6 +1138,22 @@ _ecore_evas_wl_common_pointer_xy_get(const Ecore_Evas *ee EINA_UNUSED, Evas_Coor
    ecore_wl_pointer_xy_get(x, y);
 }
 
+Eina_Bool
+_ecore_evas_wl_common_pointer_warp(const Ecore_Evas *ee, Evas_Coord x, Evas_Coord y)
+{
+   Ecore_Evas_Engine_Wl_Data *wdata;
+   Eina_Bool ret;
+
+   LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+   if ((!ee) || (!ee->visible)) return EINA_FALSE;
+   wdata = ee->engine.data;
+   if(!wdata) return EINA_FALSE;
+
+   ret = ecore_wl_window_pointer_warp(wdata->win, x, y);
+   return ret;
+}
+
 void
 _ecore_evas_wl_common_wm_rot_preferred_rotation_set(Ecore_Evas *ee, int rot)
 {
index abe88b9..8f55bd9 100644 (file)
@@ -102,7 +102,7 @@ static Ecore_Evas_Engine_Func _ecore_wl_engine_func =
    NULL, // msg_send
 
    _ecore_evas_wl_common_pointer_xy_get,
-   NULL, // pointer warp
+   _ecore_evas_wl_common_pointer_warp,
 
    _ecore_evas_wl_common_wm_rot_preferred_rotation_set,
    _ecore_evas_wl_common_wm_rot_available_rotations_set,
index 29be2c0..6fedd00 100644 (file)
@@ -102,6 +102,7 @@ Evas_Object * _ecore_evas_wl_common_frame_add(Evas *evas);
 void _ecore_evas_wl_common_frame_border_size_set(Evas_Object *obj, int fx, int fy, int fw, int fh);
 
 void _ecore_evas_wl_common_pointer_xy_get(const Ecore_Evas *ee, Evas_Coord *x, Evas_Coord *y);
+Eina_Bool _ecore_evas_wl_common_pointer_warp(const Ecore_Evas *ee, Evas_Coord x, Evas_Coord y);
 
 void _ecore_evas_wl_common_wm_rot_preferred_rotation_set(Ecore_Evas *ee, int rot);
 void _ecore_evas_wl_common_wm_rot_available_rotations_set(Ecore_Evas *ee, const int *rots, unsigned int count);
index fbdd296..a344aaf 100644 (file)
@@ -102,7 +102,7 @@ static Ecore_Evas_Engine_Func _ecore_wl_engine_func =
    NULL, // func msg send
 
    _ecore_evas_wl_common_pointer_xy_get,
-   NULL, // pointer_warp
+   _ecore_evas_wl_common_pointer_warp,
 
    _ecore_evas_wl_common_wm_rot_preferred_rotation_set,
    _ecore_evas_wl_common_wm_rot_available_rotations_set,