Commit b1696436 authored by Carlos Garnacho's avatar Carlos Garnacho

scrolledwindow: Ignore 0/0 scroll events when possibly cancelling animation

These should be used eventually to start kinetic scrolling, so should definitely
be ignored on cancellation.

https://bugzilla.gnome.org/show_bug.cgi?id=747133
parent 361a0574
......@@ -1074,7 +1074,18 @@ captured_event_cb (GtkWidget *widget,
if (event->type == GDK_SCROLL)
{
gtk_scrolled_window_cancel_deceleration (sw);
gdouble dx, dy;
/* The libinput driver may generate a final event with dx=dy=0
* after scrolling finished, this is usually an indication that
* the deceleration animation just started, so we definitely
* shouldn't cancel it.
*/
if (event->scroll.direction != GDK_SCROLL_SMOOTH ||
(gdk_event_get_scroll_deltas (event, &dx, &dy) &&
((int) dx != 0 || (int) dy != 0)))
gtk_scrolled_window_cancel_deceleration (sw);
return GDK_EVENT_PROPAGATE;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment