Skip to content

ScrolledWindow: handle changes to adjustment value during kinetic scrolling and drag gestures

Currently, any changes to the adjustment's value is ignored during kinetic scrolling or a drag gesture. In evince's case, this causes the page to change unexpectedly if you zoom in or out while one of these are happening because when zooming, evince updates the adjustment's upper and value to match the document's new size while maintaining which area of the document is currently visible. When the adjustment's value is not updated correctly, evince jumps to another location in the document.

Fix this by cancelling kinetic scrolling when the adjustment value is set, and updating the drag gesture's start coordinates so the gesture can continue from the new location.

Fixes #187

Edited by Jason Crain

Merge request reports