input: Don't send wl_pointer.motion if position didn't change

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
dev
Jonas Ådahl 10 years ago
parent d2510105a6
commit 8283c343ec
  1. 4
      src/input.c

@ -173,6 +173,8 @@ default_grab_pointer_motion(struct weston_pointer_grab *grab, uint32_t time,
struct wl_list *resource_list;
struct wl_resource *resource;
wl_fixed_t x, y;
wl_fixed_t old_sx = pointer->sx;
wl_fixed_t old_sy = pointer->sy;
if (pointer->focus) {
weston_pointer_motion_to_abs(pointer, event, &x, &y);
@ -182,11 +184,13 @@ default_grab_pointer_motion(struct weston_pointer_grab *grab, uint32_t time,
weston_pointer_move(pointer, event);
if (old_sx != pointer->sx || old_sy != pointer->sy) {
resource_list = &pointer->focus_resource_list;
wl_resource_for_each(resource, resource_list) {
wl_pointer_send_motion(resource, time,
pointer->sx, pointer->sy);
}
}
}
static void

Loading…
Cancel
Save