Ecore_Wayland: Update to latest wayland from git.

SVN revision: 70280
This commit is contained in:
Christopher Michael 2012-04-17 19:06:23 +00:00
parent 0e7939a89a
commit ccb5d642bd
3 changed files with 36 additions and 23 deletions

View File

@ -72,6 +72,7 @@ struct _Ecore_Wl_Display
int fd;
unsigned int mask;
unsigned int serial;
Ecore_Fd_Handler *fd_hdl;
struct wl_list inputs;
@ -110,6 +111,7 @@ struct _Ecore_Wl_Input
unsigned int button;
unsigned int timestamp;
unsigned int modifiers;
unsigned int pointer_enter_serial;
int sx, sy;
struct wl_list link;

View File

@ -24,15 +24,15 @@
/* local function prototypes */
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 serial, unsigned int timestamp, unsigned int button, unsigned int state);
static void _ecore_wl_input_cb_axis(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, unsigned int axis, int value);
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_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_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_up(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, int id __UNUSED__);
static void _ecore_wl_input_cb_key(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int serial, unsigned int timestamp __UNUSED__, unsigned int key, unsigned int state);
static void _ecore_wl_input_cb_pointer_enter(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int serial, struct wl_surface *surface, int sx, int sy);
static void _ecore_wl_input_cb_pointer_leave(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int serial, struct wl_surface *surface __UNUSED__);
static void _ecore_wl_input_cb_keyboard_enter(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int serial, 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 serial, struct wl_surface *surface __UNUSED__);
static void _ecore_wl_input_cb_touch_down(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int serial, 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 serial, 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_frame(void *data __UNUSED__, struct wl_input_device *input_device __UNUSED__);
static void _ecore_wl_input_cb_touch_cancel(void *data __UNUSED__, struct wl_input_device *input_device __UNUSED__);
@ -190,7 +190,7 @@ _ecore_wl_input_cb_motion(void *data, struct wl_input_device *input_device __UNU
}
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)
_ecore_wl_input_cb_button(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int serial, unsigned int timestamp, unsigned int button, unsigned int state)
{
Ecore_Wl_Input *input;
@ -199,6 +199,7 @@ _ecore_wl_input_cb_button(void *data, struct wl_input_device *input_device __UNU
if (!(input = data)) return;
input->timestamp = timestamp;
input->display->serial = serial;
if ((input->pointer_focus) && (!input->grab) && (state))
ecore_wl_input_grab(input, input->pointer_focus, button);
@ -234,7 +235,7 @@ _ecore_wl_input_cb_axis(void *data, struct wl_input_device *input_device __UNUSE
}
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)
_ecore_wl_input_cb_key(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int serial, unsigned int timestamp __UNUSED__, unsigned int key, unsigned int state)
{
Ecore_Wl_Input *input;
Ecore_Wl_Window *win;
@ -244,6 +245,7 @@ _ecore_wl_input_cb_key(void *data, struct wl_input_device *input_device __UNUSED
if (!(input = data)) return;
input->display->serial = serial;
win = input->keyboard_focus;
if ((!win) || (win->keyboard_device != input)) return;
@ -263,7 +265,7 @@ _ecore_wl_input_cb_key(void *data, struct wl_input_device *input_device __UNUSED
}
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)
_ecore_wl_input_cb_pointer_enter(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int serial, struct wl_surface *surface, int sx, int sy)
{
Ecore_Wl_Input *input;
Ecore_Wl_Window *win = NULL;
@ -272,6 +274,9 @@ _ecore_wl_input_cb_pointer_enter(void *data, struct wl_input_device *input_devic
if (!(input = data)) return;
input->display->serial = serial;
input->pointer_enter_serial = serial;
if ((win = wl_surface_get_user_data(surface)))
win->pointer_device = input;
else
@ -280,22 +285,23 @@ _ecore_wl_input_cb_pointer_enter(void *data, struct wl_input_device *input_devic
input->sx = sx;
input->sy = sy;
_ecore_wl_input_pointer_focus_set(input, win, timestamp, sx, sy);
_ecore_wl_input_pointer_focus_set(input, win, input->timestamp, sx, sy);
}
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__)
_ecore_wl_input_cb_pointer_leave(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int serial, 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);
input->display->serial = serial;
_ecore_wl_input_pointer_focus_remove(input, 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_cb_keyboard_enter(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int serial, struct wl_surface *surface, struct wl_array *keys)
{
Ecore_Wl_Input *input;
Ecore_Wl_Window *win = NULL;
@ -305,6 +311,7 @@ _ecore_wl_input_cb_keyboard_enter(void *data, struct wl_input_device *input_devi
if (!(input = data)) return;
input->display->serial = serial;
input->keyboard_focus = wl_surface_get_user_data(surface);
end = keys->data + keys->size;
@ -315,22 +322,23 @@ _ecore_wl_input_cb_keyboard_enter(void *data, struct wl_input_device *input_devi
win = input->keyboard_focus;
win->keyboard_device = input;
_ecore_wl_input_focus_in_send(input, timestamp);
_ecore_wl_input_focus_in_send(input, input->timestamp);
}
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_cb_keyboard_leave(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int serial, 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);
input->display->serial = serial;
_ecore_wl_input_keyboard_focus_remove(input, input->timestamp);
}
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 serial, unsigned int timestamp, struct wl_surface *surface __UNUSED__, int id __UNUSED__, int x, int y)
{
Ecore_Wl_Input *input;
@ -341,6 +349,7 @@ _ecore_wl_input_cb_touch_down(void *data, struct wl_input_device *input_device _
/* FIXME: NB: Not sure yet if input->timestamp should be set here.
* This needs to be tested with an actual touch device */
/* input->timestamp = timestamp; */
input->display->serial = serial;
input->button = 0;
input->sx = x;
input->sy = y;
@ -348,7 +357,7 @@ _ecore_wl_input_cb_touch_down(void *data, struct wl_input_device *input_device _
}
static void
_ecore_wl_input_cb_touch_up(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int timestamp, int id __UNUSED__)
_ecore_wl_input_cb_touch_up(void *data, struct wl_input_device *input_device __UNUSED__, unsigned int serial, unsigned int timestamp, int id __UNUSED__)
{
Ecore_Wl_Input *input;
@ -360,6 +369,7 @@ _ecore_wl_input_cb_touch_up(void *data, struct wl_input_device *input_device __U
* This needs to be tested with an actual touch device */
/* input->timestamp = timestamp; */
input->button = 0;
input->display->serial = serial;
_ecore_wl_input_mouse_up_send(input, timestamp);
}

View File

@ -8,7 +8,7 @@
#include "Ecore_Wayland.h"
/* local function prototypes */
static void _ecore_wl_window_cb_configure(void *data, struct wl_shell_surface *shell_surface __UNUSED__, unsigned int timestamp, unsigned int edges, int w, int h);
static void _ecore_wl_window_cb_configure(void *data, struct wl_shell_surface *shell_surface __UNUSED__, unsigned int edges, int w, int h);
static void _ecore_wl_window_cb_popup_done(void *data, struct wl_shell_surface *shell_surface __UNUSED__);
static void _ecore_wl_window_configure_send(Ecore_Wl_Window *win, int w, int h, unsigned int timestamp);
@ -553,7 +553,7 @@ ecore_wl_window_parent_set(Ecore_Wl_Window *win, Ecore_Wl_Window *parent)
/* local functions */
static void
_ecore_wl_window_cb_configure(void *data, struct wl_shell_surface *shell_surface __UNUSED__, unsigned int timestamp, unsigned int edges, int w, int h)
_ecore_wl_window_cb_configure(void *data, struct wl_shell_surface *shell_surface __UNUSED__, unsigned int edges, int w, int h)
{
Ecore_Wl_Window *win;
@ -569,7 +569,8 @@ _ecore_wl_window_cb_configure(void *data, struct wl_shell_surface *shell_surface
win->region.input = NULL;
if (win->region.opaque) wl_region_destroy(win->region.opaque);
win->region.opaque = NULL;
_ecore_wl_window_configure_send(win, w, h, timestamp);
/* FIXME: 0 timestamp here may not work. need to test */
_ecore_wl_window_configure_send(win, w, h, 0);
}
static void