<div dir="ltr">Sorry, seems to have been fixed already, please disregard.<br><br><a href="http://lists.freedesktop.org/archives/wayland-devel/2013-March/007824.html">http://lists.freedesktop.org/archives/wayland-devel/2013-March/007824.html</a><br>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Mar 10, 2013 at 3:46 PM, Philipp Brüschweiler <span dir="ltr"><<a href="mailto:blei42@gmail.com" target="_blank">blei42@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Fixes <a href="https://bugs.freedesktop.org/show_bug.cgi?id=61672" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=61672</a><br>

---<br>
 src/compositor-x11.c | 22 ++++++++++++----------<br>
 1 file changed, 12 insertions(+), 10 deletions(-)<br>
<br>
diff --git a/src/compositor-x11.c b/src/compositor-x11.c<br>
index 8e052dd..85318d9 100644<br>
--- a/src/compositor-x11.c<br>
+++ b/src/compositor-x11.c<br>
@@ -90,8 +90,8 @@ struct x11_compositor {<br>
        /* We could map multi-pointer X to multiple wayland seats, but<br>
         * for now we only support core X input. */<br>
        struct weston_seat               core_seat;<br>
-       int                              prev_x;<br>
-       int                              prev_y;<br>
+       wl_fixed_t                       prev_x;<br>
+       wl_fixed_t                       prev_y;<br>
<br>
        struct {<br>
                xcb_atom_t               wm_protocols;<br>
@@ -1003,18 +1003,20 @@ x11_compositor_deliver_motion_event(struct x11_compositor *c,<br>
                                        xcb_generic_event_t *event)<br>
 {<br>
        struct x11_output *output;<br>
-       wl_fixed_t x, y;<br>
+       wl_fixed_t x, y, event_x, event_y;<br>
        xcb_motion_notify_event_t *motion_notify =<br>
                        (xcb_motion_notify_event_t *) event;<br>
<br>
        if (!c->has_xkb)<br>
                update_xkb_state_from_core(c, motion_notify->state);<br>
        output = x11_compositor_find_output(c, motion_notify->event);<br>
-       x = wl_fixed_from_int(motion_notify->event_x - c->prev_x);<br>
-       y = wl_fixed_from_int(motion_notify->event_y - c->prev_y);<br>
-       c->prev_x = motion_notify->event_x;<br>
-       c->prev_y = motion_notify->event_y;<br>
-       x11_output_transform_coordinate(output, &x, &y);<br>
+       event_x = wl_fixed_from_int(motion_notify->event_x);<br>
+       event_y = wl_fixed_from_int(motion_notify->event_y);<br>
+       x11_output_transform_coordinate(output, &event_x, &event_y);<br>
+       x = event_x - c->prev_x;<br>
+       y = event_y - c->prev_y;<br>
+       c->prev_x = event_x;<br>
+       c->prev_y = event_y;<br>
<br>
        notify_motion(&c->core_seat, weston_compositor_get_time(), x, y);<br>
 }<br>
@@ -1033,11 +1035,11 @@ x11_compositor_deliver_enter_event(struct x11_compositor *c,<br>
        if (!c->has_xkb)<br>
                update_xkb_state_from_core(c, enter_notify->state);<br>
        output = x11_compositor_find_output(c, enter_notify->event);<br>
-       c->prev_x = enter_notify->event_x;<br>
-       c->prev_y = enter_notify->event_y;<br>
        x = wl_fixed_from_int(enter_notify->event_x);<br>
        y = wl_fixed_from_int(enter_notify->event_y);<br>
        x11_output_transform_coordinate(output, &x, &y);<br>
+       c->prev_x = x;<br>
+       c->prev_y = y;<br>
<br>
        notify_pointer_focus(&c->core_seat, &output->base, x, y);<br>
 }<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.8.1.5<br>
<br>
</font></span></blockquote></div><br></div>