Commit f6393199 authored by Committed by Matthias Clasen
scrolledwindow: Kinetic scrolling support
Kinetic scrolling is only done on touch devices, since it is sort of meaningless on pointer devices, besides it implies a different input event handling on child widgets that is unnecessary there. If the scrolling doesn't start after a long press, the scrolling is cancelled and events are handled by child widgets normally. When clicked again close to the previous button press location (assuming it had ~0 movement), the scrolled window will allow the child to handle the events immediately. This is so the user doesn't have to wait to the press-and-hold timeout in order to operate on the scrolledwindow child. The innermost scrolled window always gets to capture the events, all scrolled windows above it just let the event go through. Ideally reaching a limit on the innermost scrolled window would propagate the dragging up the hierarchy in order to keep following the touch coords, although that'd involve rather evil hacks just to cater for broken UIs.
Showing with 1084 additions and 12 deletions