input: Transform to surface coordinates outside resource for loop
When we send the pointer motion event, the transform from compositor to
surface coordinates doesn't depend on the resource. Transform the
coordinates up front instead of everytime we send to a resource.
diff --git a/src/input.c b/src/input.c
index d0f7fdf..1000192 100644
--- a/src/input.c
+++ b/src/input.c
@@ -172,11 +172,11 @@
weston_pointer_move(pointer, x, y);
+ if (pointer->focus)
+ weston_view_from_global_fixed(pointer->focus,
+ pointer->x, pointer->y, &sx, &sy);
resource_list = &pointer->focus_resource_list;
wl_resource_for_each(resource, resource_list) {
- weston_view_from_global_fixed(pointer->focus,
- pointer->x, pointer->y,
- &sx, &sy);
wl_pointer_send_motion(resource, time, sx, sy);
}
}