compositor-x11: send pointer frame after axis event
authorMarek Chalupa <mchqwerty@gmail.com>
Wed, 3 Feb 2016 13:03:00 +0000 (14:03 +0100)
committerBryce Harrington <bryce@bryceharrington.org>
Tue, 9 Feb 2016 21:01:56 +0000 (13:01 -0800)
clients that implement pointer interface of version 5
wait for the frame event, so without it the scrolling
does not work (GTK+ clients do not scroll now for example).
Xcb axis events are discrete, so it's fine to send
frame after every single axis event

Signed-off-by: Marek Chalupa <mchqwerty@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
src/compositor-x11.c

index b70c11900e33779a6317530228584557e8363b2c..13a5d73045686866830e1680a9a4cf7f6f671736 100644 (file)
@@ -1092,6 +1092,7 @@ x11_backend_deliver_button_event(struct x11_backend *b,
                        notify_axis(&b->core_seat,
                                    weston_compositor_get_time(),
                                    &weston_event);
+                       notify_pointer_frame(&b->core_seat);
                }
                return;
        case 5:
@@ -1104,6 +1105,7 @@ x11_backend_deliver_button_event(struct x11_backend *b,
                        notify_axis(&b->core_seat,
                                    weston_compositor_get_time(),
                                    &weston_event);
+                       notify_pointer_frame(&b->core_seat);
                }
                return;
        case 6:
@@ -1116,6 +1118,7 @@ x11_backend_deliver_button_event(struct x11_backend *b,
                        notify_axis(&b->core_seat,
                                    weston_compositor_get_time(),
                                    &weston_event);
+                       notify_pointer_frame(&b->core_seat);
                }
                return;
        case 7:
@@ -1128,6 +1131,7 @@ x11_backend_deliver_button_event(struct x11_backend *b,
                        notify_axis(&b->core_seat,
                                    weston_compositor_get_time(),
                                    &weston_event);
+                       notify_pointer_frame(&b->core_seat);
                }
                return;
        default: