EAPI Ecore_Evas *ecore_evas_wayland_egl_new(const char *disp_name, int x, int y, int w, int h, int frame);
EAPI void ecore_evas_wayland_resize(Ecore_Evas *ee, int location);
EAPI void ecore_evas_wayland_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source);
+EAPI void ecore_evas_wayland_pointer_set(Ecore_Evas *ee, int hot_x, int hot_y);
/**
* @brief Create a new @c Ecore_Evas canvas bound to the Evas
#endif
}
}
+
+EAPI void
+ecore_evas_wayland_pointer_set(Ecore_Evas *ee, int hot_x, int hot_y)
+{
+ if (!ee) return;
+ if (!ee->engine.wl.surface) return;
+
+ if (!strcmp(ee->driver, "wayland_shm"))
+ {
+#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
+ _ecore_evas_wayland_shm_pointer_set(ee, hot_x, hot_y);
+// _ecore_evas_wayland_shm_drag_start(ee, drag_ee, source);
+#endif
+ }
+ else if (!strcmp(ee->driver, "wayland_egl"))
+ {
+#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
+ _ecore_evas_wayland_egl_pointer_set(ee, hot_x, hot_y);
+// _ecore_evas_wayland_egl_drag_start(ee, drag_ee, source);
+#endif
+ }
+}
+
#else
EAPI void
ecore_evas_wayland_resize(Ecore_Evas *ee __UNUSED__, int location __UNUSED__)
{
}
+
+EAPI void
+ecore_evas_wayland_pointer_set(Ecore_Evas *ee __UNUSED__, int hot_x __UNUSED__, int hot_y __UNUSED__)
+{
+
+}
#endif
#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
void _ecore_evas_wayland_shm_resize(Ecore_Evas *ee, int location);
void _ecore_evas_wayland_shm_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source);
+void _ecore_evas_wayland_shm_pointer_set(Ecore_Evas *ee, int hot_x, int hot_y);
#endif
#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
void _ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location);
void _ecore_evas_wayland_egl_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source);
+void _ecore_evas_wayland_egl_pointer_set(Ecore_Evas *ee, int hot_x, int hot_y);
#endif
void _ecore_evas_fps_debug_init(void);
ecore_wl_drag_start(source, ee->engine.wl.surface, drag_ee->engine.wl.buffer);
}
+void
+_ecore_evas_wayland_egl_pointer_set(Ecore_Evas *ee, int hot_x, int hot_y)
+{
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+ if ((!ee) || (!ee->engine.wl.surface)) return;
+ wl_input_device_attach(ecore_wl_input_device_get(),
+ ecore_wl_input_timestamp_get(),
+ ee->engine.wl.buffer, hot_x, hot_y);
+}
+
#else
EAPI Ecore_Evas *
ecore_evas_wayland_egl_new(const char *disp_name __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__, int frame __UNUSED__)
ecore_wl_drag_start(source, ee->engine.wl.surface, drag_ee->engine.wl.buffer);
}
+void
+_ecore_evas_wayland_shm_pointer_set(Ecore_Evas *ee, int hot_x, int hot_y)
+{
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+ if ((!ee) || (!ee->engine.wl.surface)) return;
+ wl_input_device_attach(ecore_wl_input_device_get(),
+ ecore_wl_input_timestamp_get(),
+ ee->engine.wl.buffer, hot_x, hot_y);
+}
+
#else
EAPI Ecore_Evas *
ecore_evas_wayland_shm_new(const char *disp_name __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__, int frame __UNUSED__)