diff --git a/src/wayland/meta-wayland-seat.c b/src/wayland/meta-wayland-seat.c index 259de37ae..ef404faf9 100644 --- a/src/wayland/meta-wayland-seat.c +++ b/src/wayland/meta-wayland-seat.c @@ -369,6 +369,19 @@ meta_wayland_seat_handle_event (MetaWaylandSeat *seat, { seat->pointer.button_count = count_buttons (event); + if (seat->cursor_tracker) + { + meta_cursor_tracker_update_position (seat->cursor_tracker, + wl_fixed_to_int (seat->pointer.x), + wl_fixed_to_int (seat->pointer.y)); + + if (seat->pointer.current == NULL) + meta_cursor_tracker_revert_root (seat->cursor_tracker); + + meta_cursor_tracker_queue_redraw (seat->cursor_tracker, + CLUTTER_ACTOR (event->any.stage)); + } + switch (event->type) { case CLUTTER_MOTION: diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c index 6351e4878..eda618adc 100644 --- a/src/wayland/meta-wayland.c +++ b/src/wayland/meta-wayland.c @@ -567,27 +567,10 @@ event_filter_cb (const ClutterEvent *event, { MetaWaylandCompositor *compositor = user_data; MetaWaylandSeat *seat = compositor->seat; - MetaWaylandPointer *pointer = &seat->pointer; reset_idletimes (event); - if (meta_wayland_seat_handle_event (compositor->seat, event)) - return TRUE; - - if (seat->cursor_tracker) - { - meta_cursor_tracker_update_position (seat->cursor_tracker, - wl_fixed_to_int (pointer->x), - wl_fixed_to_int (pointer->y)); - - if (pointer->current == NULL) - meta_cursor_tracker_revert_root (seat->cursor_tracker); - - meta_cursor_tracker_queue_redraw (seat->cursor_tracker, - CLUTTER_ACTOR (event->any.stage)); - } - - return FALSE; + return meta_wayland_seat_handle_event (compositor->seat, event); } static void