Ecore_Wayland: Update ecore_wayland to match new events in todays

Wayland code.

NB: This will probably need updating again tomorrow, and again the day
after, etc, etc.



SVN revision: 69073
This commit is contained in:
Christopher Michael 2012-03-09 02:36:00 +00:00
parent ec001b86a2
commit fe3006163c
2 changed files with 34 additions and 14 deletions

View File

@ -159,7 +159,7 @@ ecore_wl_init(const char *name)
_ecore_wl_cb_handle_global, _ecore_wl_disp); _ecore_wl_cb_handle_global, _ecore_wl_disp);
/* FIXME: Process connection events ?? */ /* FIXME: Process connection events ?? */
/* wl_display_iterate(_ecore_wl_disp->wl.display, WL_DISPLAY_READABLE); */ wl_display_iterate(_ecore_wl_disp->wl.display, WL_DISPLAY_READABLE);
/* if (!_ecore_wl_egl_init(_ecore_wl_disp)) */ /* if (!_ecore_wl_egl_init(_ecore_wl_disp)) */
/* { */ /* { */
@ -356,7 +356,7 @@ _ecore_wl_shutdown(Eina_Bool close)
if (_ecore_wl_disp->wl.display) if (_ecore_wl_disp->wl.display)
{ {
wl_display_flush(_ecore_wl_disp->wl.display); wl_display_flush(_ecore_wl_disp->wl.display);
wl_display_destroy(_ecore_wl_disp->wl.display); wl_display_disconnect(_ecore_wl_disp->wl.display);
} }
free(_ecore_wl_disp); free(_ecore_wl_disp);
} }

View File

@ -26,8 +26,10 @@
static void _ecore_wl_input_cb_motion(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, int sx, int sy); static void _ecore_wl_input_cb_motion(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, int sx, int sy);
static void _ecore_wl_input_cb_button(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, unsigned int button, unsigned int state); static void _ecore_wl_input_cb_button(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, unsigned int button, unsigned int state);
static void _ecore_wl_input_cb_key(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp __UNUSED__, unsigned int key, unsigned int state); static void _ecore_wl_input_cb_key(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp __UNUSED__, unsigned int key, unsigned int state);
static void _ecore_wl_input_cb_pointer_focus(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface, int sx, int sy); static void _ecore_wl_input_cb_pointer_enter(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface, int sx, int sy);
static void _ecore_wl_input_cb_keyboard_focus(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface, struct wl_array *keys); static void _ecore_wl_input_cb_pointer_leave(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface __UNUSED__);
static void _ecore_wl_input_cb_keyboard_enter(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface, struct wl_array *keys);
static void _ecore_wl_input_cb_keyboard_leave(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface __UNUSED__);
static void _ecore_wl_input_cb_touch_down(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface __UNUSED__, int id __UNUSED__, int x, int y); static void _ecore_wl_input_cb_touch_down(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface __UNUSED__, int id __UNUSED__, int x, int y);
static void _ecore_wl_input_cb_touch_up(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, int id __UNUSED__); static void _ecore_wl_input_cb_touch_up(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, int id __UNUSED__);
static void _ecore_wl_input_cb_touch_motion(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, int id __UNUSED__, int x, int y); static void _ecore_wl_input_cb_touch_motion(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, int id __UNUSED__, int x, int y);
@ -57,8 +59,10 @@ static const struct wl_input_device_listener _ecore_wl_input_listener =
_ecore_wl_input_cb_motion, _ecore_wl_input_cb_motion,
_ecore_wl_input_cb_button, _ecore_wl_input_cb_button,
_ecore_wl_input_cb_key, _ecore_wl_input_cb_key,
_ecore_wl_input_cb_pointer_focus, _ecore_wl_input_cb_pointer_enter,
_ecore_wl_input_cb_keyboard_focus, _ecore_wl_input_cb_pointer_leave,
_ecore_wl_input_cb_keyboard_enter,
_ecore_wl_input_cb_keyboard_leave,
_ecore_wl_input_cb_touch_down, _ecore_wl_input_cb_touch_down,
_ecore_wl_input_cb_touch_up, _ecore_wl_input_cb_touch_up,
_ecore_wl_input_cb_touch_motion, _ecore_wl_input_cb_touch_motion,
@ -218,7 +222,7 @@ _ecore_wl_input_cb_key(void *data, struct wl_input_device *input_device __UNUSED
} }
static void static void
_ecore_wl_input_cb_pointer_focus(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface, int sx, int sy) _ecore_wl_input_cb_pointer_enter(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface, int sx, int sy)
{ {
Ecore_Wl_Input *input; Ecore_Wl_Input *input;
Ecore_Wl_Window *win = NULL; Ecore_Wl_Window *win = NULL;
@ -257,7 +261,18 @@ _ecore_wl_input_cb_pointer_focus(void *data, struct wl_input_device *input_devic
} }
static void static void
_ecore_wl_input_cb_keyboard_focus(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface, struct wl_array *keys) _ecore_wl_input_cb_pointer_leave(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface __UNUSED__)
{
Ecore_Wl_Input *input;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
if (!(input = data)) return;
_ecore_wl_input_pointer_focus_remove(input, timestamp);
}
static void
_ecore_wl_input_cb_keyboard_enter(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface, struct wl_array *keys)
{ {
Ecore_Wl_Input *input; Ecore_Wl_Input *input;
Ecore_Wl_Window *win = NULL; Ecore_Wl_Window *win = NULL;
@ -267,10 +282,6 @@ _ecore_wl_input_cb_keyboard_focus(void *data, struct wl_input_device *input_devi
if (!(input = data)) return; if (!(input = data)) return;
win = input->keyboard_focus;
if ((win) && (win->surface != surface))
_ecore_wl_input_keyboard_focus_remove(input, timestamp);
end = keys->data + keys->size; end = keys->data + keys->size;
input->modifiers = 0; input->modifiers = 0;
for (k = keys->data; k < end; k++) for (k = keys->data; k < end; k++)
@ -289,6 +300,17 @@ _ecore_wl_input_cb_keyboard_focus(void *data, struct wl_input_device *input_devi
} }
} }
static void
_ecore_wl_input_cb_keyboard_leave(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface __UNUSED__)
{
Ecore_Wl_Input *input;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
if (!(input = data)) return;
_ecore_wl_input_keyboard_focus_remove(input, timestamp);
}
static void static void
_ecore_wl_input_cb_touch_down(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface __UNUSED__, int id __UNUSED__, int x, int y) _ecore_wl_input_cb_touch_down(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, struct wl_surface *surface __UNUSED__, int id __UNUSED__, int x, int y)
{ {
@ -587,7 +609,6 @@ _ecore_wl_input_mouse_down_send(Ecore_Wl_Input *input, unsigned int timestamp)
ev->event_window = input->pointer_focus->id; ev->event_window = input->pointer_focus->id;
} }
/* NB: Hmmmm, smells like this could be a leak. No free function */
ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, ev, NULL, NULL); ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, ev, NULL, NULL);
} }
@ -633,6 +654,5 @@ _ecore_wl_input_mouse_up_send(Ecore_Wl_Input *input, unsigned int timestamp)
ev->event_window = input->pointer_focus->id; ev->event_window = input->pointer_focus->id;
} }
/* NB: Hmmmm, smells like this could be a leak. No free function */
ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, ev, NULL, NULL); ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, ev, NULL, NULL);
} }