compositor: Use wl_fixed_t for incoming input events
This changes notify_motion, notify_pointer_focus and notify_touch to take
wl_fixed_t types for input coordinates.
diff --git a/src/compositor-x11.c b/src/compositor-x11.c
index 759b551..7fbcb5f 100644
--- a/src/compositor-x11.c
+++ b/src/compositor-x11.c
@@ -560,6 +560,7 @@
xcb_atom_t atom;
uint32_t *k;
uint32_t i, set;
+ wl_fixed_t x, y;
prev = NULL;
while (x11_compositor_next_event(c, &event, mask)) {
@@ -633,10 +634,10 @@
case XCB_MOTION_NOTIFY:
motion_notify = (xcb_motion_notify_event_t *) event;
output = x11_compositor_find_output(c, motion_notify->event);
+ x = wl_fixed_from_int(output->base.x + motion_notify->event_x);
+ y = wl_fixed_from_int(output->base.y + motion_notify->event_y);
notify_motion(c->base.input_device,
- weston_compositor_get_time(),
- output->base.x + motion_notify->event_x,
- output->base.y + motion_notify->event_y);
+ weston_compositor_get_time(), x, y);
break;
case XCB_EXPOSE:
@@ -651,10 +652,11 @@
if (enter_notify->state >= Button1Mask)
break;
output = x11_compositor_find_output(c, enter_notify->event);
+ x = wl_fixed_from_int(output->base.x + enter_notify->event_x);
+ y = wl_fixed_from_int(output->base.y + enter_notify->event_y);
+
notify_pointer_focus(c->base.input_device,
- &output->base,
- output->base.x + enter_notify->event_x,
- output->base.y + enter_notify->event_y);
+ &output->base, x, y);
break;
case XCB_LEAVE_NOTIFY:
@@ -662,9 +664,7 @@
if (enter_notify->state >= Button1Mask)
break;
output = x11_compositor_find_output(c, enter_notify->event);
- notify_pointer_focus(c->base.input_device, NULL,
- output->base.x + enter_notify->event_x,
- output->base.y + enter_notify->event_y);
+ notify_pointer_focus(c->base.input_device, NULL, 0, 0);
break;
case XCB_CLIENT_MESSAGE: