Ecore_Evas: Add functions for setting wayland mouse pointer (used from

elm wayland clients).



SVN revision: 67816
This commit is contained in:
Christopher Michael 2012-02-10 09:16:29 +00:00
parent 039cd30ebd
commit 1acb7b4f9e
5 changed files with 54 additions and 0 deletions

View File

@ -697,6 +697,7 @@ EAPI Ecore_Evas *ecore_evas_wayland_shm_new(const char *disp_name, int x, in
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

View File

@ -2714,6 +2714,29 @@ ecore_evas_wayland_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source)
#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__)
@ -2725,5 +2748,11 @@ EAPI void
ecore_evas_wayland_drag_start(Ecore_Evas *ee __UNUSED__, Ecore_Evas *drag_ee __UNUSED__, void *source __UNUSED__)
{
}
EAPI void
ecore_evas_wayland_pointer_set(Ecore_Evas *ee __UNUSED__, int hot_x __UNUSED__, int hot_y __UNUSED__)
{
}
#endif

View File

@ -406,11 +406,13 @@ int _ecore_evas_ews_shutdown(void);
#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);

View File

@ -1042,6 +1042,17 @@ _ecore_evas_wayland_egl_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *so
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__)

View File

@ -1170,6 +1170,17 @@ _ecore_evas_wayland_shm_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *so
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__)