• Ian Hickson's avatar
    Tapping a ScrollView during overscroll got it stuck. (#9721) · f64bfba8
    Ian Hickson authored
    Fixes https://github.com/flutter/flutter/issues/8476
    
    More detailed list of changes in this patch:
    
    * Replaced the didTouch special logic with more generic logic that
      uses Activities instead. Now instead when you tap down the
      Scrollable calls `hold()` which begins a HoldScrollActivity which is
      a hybrid of DragStartDetails and IdleScrollActivity and can be
      canceled. When you let go, it gets canceled and that goes ballistic.
    
    * Make DragGestureRecognizer more aggressive about grabbing pointers,
      otherwise a second pointer in a situation with competing horizontal
      and vertical recognizers always gets taken by the other one.
    
    * Fixed the _GestureSemantics widget to call the "down" callbacks so
      that it follows the same pattern as "real" interactions.
    
    * Added tests for the above.
    
    * Added a hashCode to ScrollActivity.toString (and subclasses).
    
    * Added a toString to ScrollDragController, and include it in
      DragScrollActivity's toString.
    
    * s/coorindator/coordinator/
    
    * Add a comment in DragStartDetails to distinguish it from the
      otherwise identical DragDownDetails, so we're not tempted to merge
      them.
    f64bfba8
scroll_activity.dart 16.5 KB