// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
EAPI void ecore_wl2_display_sync(Ecore_Wl2_Display *display);
//
+
// TIZEN_ONLY(20171107): add ecore_wl2_window_input_get() EAPI
EAPI Ecore_Wl2_Input *ecore_wl2_window_input_get(Ecore_Wl2_Window *win);
//
+// TIZEN_ONLY(20171114): support a pointer warp
+EAPI Eina_Bool ecore_wl2_window_pointer_warp(Ecore_Wl2_Window *win, int x, int y);
+//
+
//TIZEN_ONLY(20171108): add a new API to ecore_wl2_sync
EAPI void ecore_wl2_sync(void);
//
return NULL;
}
//
+
+// TIZEN_ONLY(20171114): support a pointer warp
+EAPI Eina_Bool
+ecore_wl2_window_pointer_warp(Ecore_Wl2_Window *win, int x, int y)
+{
+ Ecore_Wl2_Display *ewd;
+
+ /* FIXME: visible is not merged yet. */
+ //if (!win || !win->surface || !win->visible) return EINA_FALSE;
+ if (!win || !win->surface) return EINA_FALSE;
+
+ ewd = win->display;
+ if (!ewd || !ewd->wl.tz_input_device_manager) return EINA_FALSE;
+
+ tizen_input_device_manager_pointer_warp(ewd->wl.tz_input_device_manager,
+ win->surface, wl_fixed_from_int(x), wl_fixed_from_int(y));
+
+ return EINA_TRUE;
+}
+//
if (input) ecore_wl2_input_pointer_xy_get(input, x, y);
}
+// TIZEN_ONLY(20171114): support a pointer warp
+static 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_wl2_window_pointer_warp(wdata->win, x, y);
+ return ret;
+}
+//
+
static void
_ecore_evas_wl_common_wm_rot_preferred_rotation_set(Ecore_Evas *ee, int rot)
{
NULL, // func msg send
_ecore_evas_wl_common_pointer_xy_get,
- NULL, // pointer_warp
+ // TIZEN_ONLY(20171114): support a 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,