Commit 9eb356d9 authored by Carlos Garnacho's avatar Carlos Garnacho

GtkScrolledWindow: Always uninstall scroll cursor when starting deceleration

It could be the case that the last scroll event is received long after any
previous scroll event, in this case the last scroll event discards all "old"
scroll events, and scroll_history_finish() returns FALSE because there's no
time/offset deltas in the scroll history.

This is desired so we don't trigger the deceleration effect if there was no
effective velocity, we still must reset the installed scroll cursor, so take
it out of this if() condition.
parent c0f66ed1
......@@ -3503,12 +3503,12 @@ gtk_scrolled_window_scroll_event (GtkWidget *widget,
priv->scroll_events_overshoot_id = 0;
if (start_deceleration)
uninstall_scroll_cursor (scrolled_window);
if (start_deceleration &&
scroll_history_finish (scrolled_window, &vel_x, &vel_y))
uninstall_scroll_cursor (scrolled_window);
gtk_scrolled_window_decelerate (scrolled_window, vel_x, vel_y);
gtk_scrolled_window_decelerate (scrolled_window, vel_x, vel_y);
else if (_gtk_scrolled_window_get_overshoot (scrolled_window, NULL, NULL))
priv->scroll_events_overshoot_id =
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