From 5536031bfb7d70b462e65406bcae2a35738a9485 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Tue, 14 Feb 2012 11:00:12 +0200 Subject: [PATCH] protocol: remove absolute coordinates from pointer Remove the absolute coordinate fields from the pointer motion and pointer_focus events. Clients are not supposed to see any global coordinates. Fix wayland-server code accordingly. wayland-client code is unaffected. Signed-off-by: Pekka Paalanen --- protocol/wayland.xml | 9 ++------- src/wayland-server.c | 12 ++++-------- src/wayland-server.h | 1 - 3 files changed, 6 insertions(+), 16 deletions(-) diff --git a/protocol/wayland.xml b/protocol/wayland.xml index 45e860a..a40e4b0 100644 --- a/protocol/wayland.xml +++ b/protocol/wayland.xml @@ -594,14 +594,11 @@ - Notification of pointer location change. x,y are the absolute - location on the screen. surface_[xy] are the location - relative to the focused surface. + Notification of pointer location change. The arguments surface_[xy] + are the location relative to the focused surface. - - @@ -637,8 +634,6 @@ - - diff --git a/src/wayland-server.c b/src/wayland-server.c index 70adf28..8239291 100644 --- a/src/wayland-server.c +++ b/src/wayland-server.c @@ -421,21 +421,19 @@ default_grab_focus(struct wl_grab *grab, uint32_t time, if (device->button_count > 0) return; - wl_input_device_set_pointer_focus(device, surface, time, - device->x, device->y, x, y); + wl_input_device_set_pointer_focus(device, surface, time, x, y); } static void default_grab_motion(struct wl_grab *grab, uint32_t time, int32_t x, int32_t y) { - struct wl_input_device *device = grab->input_device; struct wl_resource *resource; resource = grab->input_device->pointer_focus_resource; if (resource) wl_resource_post_event(resource, WL_INPUT_DEVICE_MOTION, - time, device->x, device->y, x, y); + time, x, y); } static void @@ -453,7 +451,6 @@ default_grab_button(struct wl_grab *grab, if (device->button_count == 0 && state == 0) wl_input_device_set_pointer_focus(device, device->current, time, - device->x, device->y, device->current_x, device->current_y); } @@ -519,7 +516,6 @@ WL_EXPORT void wl_input_device_set_pointer_focus(struct wl_input_device *device, struct wl_surface *surface, uint32_t time, - int32_t x, int32_t y, int32_t sx, int32_t sy) { struct wl_resource *resource; @@ -532,7 +528,7 @@ wl_input_device_set_pointer_focus(struct wl_input_device *device, device->pointer_focus->resource.client != surface->resource.client)) wl_resource_post_event(device->pointer_focus_resource, WL_INPUT_DEVICE_POINTER_FOCUS, - time, NULL, 0, 0, 0, 0); + time, NULL, 0, 0); if (device->pointer_focus_resource) wl_list_remove(&device->pointer_focus_listener.link); @@ -540,7 +536,7 @@ wl_input_device_set_pointer_focus(struct wl_input_device *device, if (resource) { wl_resource_post_event(resource, WL_INPUT_DEVICE_POINTER_FOCUS, - time, surface, x, y, sx, sy); + time, surface, sx, sy); wl_list_insert(resource->destroy_listener_list.prev, &device->pointer_focus_listener.link); } diff --git a/src/wayland-server.h b/src/wayland-server.h index 0bc6c7a..616df3b 100644 --- a/src/wayland-server.h +++ b/src/wayland-server.h @@ -269,7 +269,6 @@ void wl_input_device_set_pointer_focus(struct wl_input_device *device, struct wl_surface *surface, uint32_t time, - int32_t x, int32_t y, int32_t sx, int32_t sy); void -- 2.7.4