[PATCH 5/6] xwayland: follow wayland change to serial numbers
Tiago Vignatti
tiago.vignatti at intel.com
Mon Apr 16 07:31:50 PDT 2012
Signed-off-by: Tiago Vignatti <tiago.vignatti at intel.com>
---
hw/xfree86/xwayland/xwayland-cursor.c | 2 +-
hw/xfree86/xwayland/xwayland-input.c | 42 ++++++++++++++++++-------------
hw/xfree86/xwayland/xwayland-private.h | 3 +-
3 files changed, 27 insertions(+), 20 deletions(-)
diff --git a/hw/xfree86/xwayland/xwayland-cursor.c b/hw/xfree86/xwayland/xwayland-cursor.c
index eae11ab..04b5297 100644
--- a/hw/xfree86/xwayland/xwayland-cursor.c
+++ b/hw/xfree86/xwayland/xwayland-cursor.c
@@ -169,7 +169,7 @@ xwl_set_cursor(DeviceIntPtr device,
buffer = dixGetPrivate(&cursor->devPrivates, &xwl_cursor_private_key);
wl_input_device_attach(xwl_input_device->input_device,
- xwl_input_device->time, buffer,
+ xwl_screen->serial, buffer,
cursor->bits->xhot, cursor->bits->yhot);
}
diff --git a/hw/xfree86/xwayland/xwayland-input.c b/hw/xfree86/xwayland/xwayland-input.c
index ea63607..7599709 100644
--- a/hw/xfree86/xwayland/xwayland-input.c
+++ b/hw/xfree86/xwayland/xwayland-input.c
@@ -268,15 +268,12 @@ device_added(struct xwl_input_device *xwl_input_device, const char *driver)
static void
input_device_handle_motion(void *data, struct wl_input_device *input_device,
- uint32_t time,
- int32_t x, int32_t y, int32_t sx, int32_t sy)
+ uint32_t time, int32_t sx, int32_t sy)
{
struct xwl_input_device *xwl_input_device = data;
struct xwl_screen *xwl_screen = xwl_input_device->xwl_screen;
int32_t dx, dy, lx, ly;
- xwl_input_device->time = time;
-
if (!xwl_input_device->focus_window)
return ;
@@ -292,12 +289,13 @@ input_device_handle_motion(void *data, struct wl_input_device *input_device,
static void
input_device_handle_button(void *data, struct wl_input_device *input_device,
- uint32_t time, uint32_t button, uint32_t state)
+ uint32_t serial, uint32_t time, uint32_t button,
+ uint32_t state)
{
struct xwl_input_device *xwl_input_device = data;
int index;
- xwl_input_device->time = time;
+ xwl_input_device->xwl_screen->serial = serial;
switch (button) {
case BTN_MIDDLE:
@@ -317,12 +315,13 @@ input_device_handle_button(void *data, struct wl_input_device *input_device,
static void
input_device_handle_key(void *data, struct wl_input_device *input_device,
- uint32_t time, uint32_t key, uint32_t state)
+ uint32_t serial, uint32_t time, uint32_t key,
+ uint32_t state)
{
struct xwl_input_device *xwl_input_device = data;
uint32_t modifier;
- xwl_input_device->time = time;
+ xwl_input_device->xwl_screen->serial = serial;
switch (key) {
case KEY_LEFTMETA:
@@ -345,14 +344,14 @@ input_device_handle_key(void *data, struct wl_input_device *input_device,
static void
input_device_handle_pointer_enter(void *data,
struct wl_input_device *input_device,
- uint32_t time,
- struct wl_surface *surface,
- int32_t x, int32_t y, int32_t sx, int32_t sy)
+ uint32_t serial, struct wl_surface *surface,
+ int32_t sx, int32_t sy)
{
struct xwl_input_device *xwl_input_device = data;
- xwl_input_device->time = time;
+ xwl_input_device->xwl_screen->serial = serial;
+ xwl_input_device->pointer_enter_serial = serial;
if (surface)
xwl_input_device->focus_window = wl_surface_get_user_data(surface);
@@ -370,14 +369,14 @@ input_device_handle_pointer_enter(void *data,
static void
input_device_handle_keyboard_enter(void *data,
struct wl_input_device *input_device,
- uint32_t time,
+ uint32_t serial,
struct wl_surface *surface,
struct wl_array *keys)
{
struct xwl_input_device *xwl_input_device = data;
uint32_t *k, *end;
- xwl_input_device->time = time;
+ xwl_input_device->xwl_screen->serial = serial;
xwl_input_device->modifiers = 0;
end = (uint32_t *) ((char *) keys->data + keys->size);
@@ -400,22 +399,29 @@ input_device_handle_axis(void *data, struct wl_input_device *input_device,
static void
input_device_handle_pointer_leave(void *data,
struct wl_input_device *input_device,
- uint32_t time, struct wl_surface *surface)
+ uint32_t serial, struct wl_surface *surface)
{
+ struct xwl_input_device *xwl_input_device = data;
+
+ xwl_input_device->xwl_screen->serial = serial;
}
static void
input_device_handle_keyboard_leave(void *data,
struct wl_input_device *input_device,
- uint32_t time,
+ uint32_t serial,
struct wl_surface *surface)
{
+ struct xwl_input_device *xwl_input_device = data;
+
+ xwl_input_device->xwl_screen->serial = serial;
}
static void
input_device_handle_touch_down(void *data,
struct wl_input_device *wl_input_device,
- uint32_t time, struct wl_surface *surface,
+ uint32_t serial, uint32_t time,
+ struct wl_surface *surface,
int32_t id, int32_t x, int32_t y)
{
}
@@ -423,7 +429,7 @@ input_device_handle_touch_down(void *data,
static void
input_device_handle_touch_up(void *data,
struct wl_input_device *wl_input_device,
- uint32_t time, int32_t id)
+ uint32_t serial, uint32_t time, int32_t id)
{
}
diff --git a/hw/xfree86/xwayland/xwayland-private.h b/hw/xfree86/xwayland/xwayland-private.h
index 87362f6..4d6fbab 100644
--- a/hw/xfree86/xwayland/xwayland-private.h
+++ b/hw/xfree86/xwayland/xwayland-private.h
@@ -60,6 +60,7 @@ struct xwl_screen {
struct xorg_list input_device_list;
struct xorg_list damage_window_list;
struct xorg_list window_list;
+ uint32_t serial;
/* FIXME: Hack. */
int32_t width, height;
@@ -96,7 +97,7 @@ struct xwl_input_device {
int32_t grab_x, grab_y;
uint32_t id;
uint32_t modifiers;
- uint32_t time;
+ uint32_t pointer_enter_serial;
struct xorg_list link;
};
--
1.7.5.4
More information about the wayland-devel
mailing list