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