Skip to content
  • Carlos Garcia Campos's avatar
    scrolledwindow: Kinetic scrolling support · f6393199
    Carlos Garcia Campos authored and Matthias Clasen's avatar Matthias Clasen committed
    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.
    f6393199