mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-16 07:04:29 +00:00
wayland: Improve checks when flushing scroll events
If we get gdk_wayland_seat_flush_frame_event() with no previous event to be flushed, we fallback into the scroll event checks. However, there's no check performed there as to whether it really scrolled, so it'd always send a smooth scroll event with 0/0 deltas in this case. This should be mostly harmless, but still, we should only end up emitting scroll events if those really happened.
This commit is contained in:
parent
bfcd9a2193
commit
f7108d4d43
@ -1142,8 +1142,14 @@ flush_scroll_event (GdkWaylandSeat *seat,
|
|||||||
direction = GDK_SCROLL_DOWN;
|
direction = GDK_SCROLL_DOWN;
|
||||||
|
|
||||||
flush_discrete_scroll_event (seat, direction);
|
flush_discrete_scroll_event (seat, direction);
|
||||||
|
pointer_frame->discrete_x = 0;
|
||||||
|
pointer_frame->discrete_y = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pointer_frame->is_scroll_stop ||
|
||||||
|
pointer_frame->delta_x != 0 ||
|
||||||
|
pointer_frame->delta_y != 0)
|
||||||
|
{
|
||||||
/* Axes can stop independently, if we stop on one axis but have a
|
/* Axes can stop independently, if we stop on one axis but have a
|
||||||
* delta on the other, we don't count it as a stop event.
|
* delta on the other, we don't count it as a stop event.
|
||||||
*/
|
*/
|
||||||
@ -1159,9 +1165,8 @@ flush_scroll_event (GdkWaylandSeat *seat,
|
|||||||
|
|
||||||
pointer_frame->delta_x = 0;
|
pointer_frame->delta_x = 0;
|
||||||
pointer_frame->delta_y = 0;
|
pointer_frame->delta_y = 0;
|
||||||
pointer_frame->discrete_x = 0;
|
|
||||||
pointer_frame->discrete_y = 0;
|
|
||||||
pointer_frame->is_scroll_stop = FALSE;
|
pointer_frame->is_scroll_stop = FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user