From 8283c343ec0b21c88edc7dbfaafbc2ed53d78d61 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jonas=20=C3=85dahl?= Date: Fri, 24 Apr 2015 15:26:17 +0800 Subject: [PATCH] input: Don't send wl_pointer.motion if position didn't change MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jonas Ådahl Reviewed-by: Peter Hutterer --- src/input.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/input.c b/src/input.c index 53e84a0..86f96b5 100644 --- a/src/input.c +++ b/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,10 +184,12 @@ default_grab_pointer_motion(struct weston_pointer_grab *grab, uint32_t time, weston_pointer_move(pointer, event); - resource_list = &pointer->focus_resource_list; - wl_resource_for_each(resource, resource_list) { - wl_pointer_send_motion(resource, time, - pointer->sx, pointer->sy); + 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); + } } } -- 2.7.4