1. 23 Mar, 2016 1 commit
    • Adam Barth's avatar
      Scrollable physics should be reasonable when sizes change · f7f1259b
      Adam Barth authored
      Previously, when the content extent changed during a scroll interaction, we'd
      stop the current scroll interaction and reset the scroll offset. Now we try to
      continue the scroll interaction (e.g., drag, fling, or overscroll) even through
      the underlying scroll behavior has changed.
      
      For physics-based scroll interactions, we keep the current position and
      velocity and recompute the operative forces. For drag interactions, we keep the
      current position and continue to let the user drag the scroll offset.
      
      After this patch, we still disrupt non-physical scroll animations that are
      operating outside the new scroll bounds because it's not clear how we can
      sensibly modify them to work with the new scroll bounds.
      f7f1259b
  2. 22 Mar, 2016 1 commit
  3. 21 Mar, 2016 1 commit
    • Adam Barth's avatar
      Scrollable sometimes pushes frames forever · 5a5fcb95
      Adam Barth authored
      We were setting a negative velocity tolerance, which never triggered because we
      assume tolerances are positive numbers. Now we use a positive tolerance and
      assert to catch this case in the future.
      
      Fixes #2765
      5a5fcb95
  4. 18 Mar, 2016 1 commit
  5. 15 Mar, 2016 1 commit
    • Adam Barth's avatar
      Tapping drawer during animation causes it to stick · a710676d
      Adam Barth authored
      The problem was we were using a tap gesture to stop the motion of the
      drawer and a drag gesture to settle it. That can cause a broken
      lifecycle. Now we use a single drag recognizer to drive the whole
      lifecycle.
      
      Fixes #775
      Fixes #1276
      a710676d
  6. 14 Mar, 2016 2 commits
  7. 12 Mar, 2016 9 commits
  8. 06 Mar, 2016 1 commit
  9. 03 Mar, 2016 1 commit
  10. 27 Feb, 2016 1 commit
  11. 26 Feb, 2016 2 commits
  12. 25 Feb, 2016 1 commit
    • Hixie's avatar
      Remove size observers from scrollables. · f8080557
      Hixie authored
      Also:
       - add operator==/hashCode/toString to ViewportDimensions
       - add toString to BindingBase
       - add toString and debugFillDescription to ScrollBehavior
       - fix a bug in the RawGestureDetectorState's replaceGestureRecognizers
       - rename MixedViewport's onExtentsUpdate to onExtentChanged
       - replace ExtentsUpdateCallback with ValueChanged<double>
       - remove a microtask for dispatching scroll start, since it
         did not appear to have any purpose
       - added dartdocs to Instrumentation until I understood it
       - made all event dispatch in Instrumentation drain microtasks
      f8080557
  13. 14 Feb, 2016 1 commit
    • Adam Barth's avatar
      Add a Velocity class to be explicit about units · 4fb47600
      Adam Barth authored
      We were using an Offset, which represented pixels/second, but it wasn't
      clear to clients whether that was pixels/ms. Now we use a Velocity class
      that is explict about the units.
      
      Fixes #1510
      Fixes #785
      4fb47600
  14. 12 Feb, 2016 1 commit
    • Hixie's avatar
      SizeObserver crusade: snap alignment · fd7be69d
      Hixie authored
      Remove the SizeObserver you need to use snap alignment in lists by
      having the lists provide the size themselves in the callback.
      
      Also, remove snapAlignmentOffset since we couldn't figure out how to
      explain it and it's not really needed.
      fd7be69d
  15. 11 Feb, 2016 1 commit
    • Ian Hickson's avatar
      Clean up imports and exports. · a94999ba
      Ian Hickson authored
      Each layer is supposed to reexport the parts of the previous layer
      that are part of its API.
      
      - In painting.dart, export from dart:ui all the Canvas-related APIs
        that make sense to be used at higher levels, e.g. PaintingStyle.
      
      - Delete painting/shadows.dart. It was dead code.
      
      - In rendering/object.dart, export all of painting.dart.
      
      - In widgets/basic.dart, export all of painting.dart and
        animation.dart. Some classes in animation/ are renamed to make this
        less disruptive and confusing to the namespace.
      
      - Split out Stocks back into an import model rather than a part model,
        so that it's easier to manage its dependencies on a per-file basis.
      
      - Move Ticker to scheduler library.
      
      - Remove as many redundant imports as possible now.
      
      - Some minor nit picking cleanup in various files.
      a94999ba
  16. 09 Feb, 2016 3 commits
  17. 06 Feb, 2016 2 commits
    • Adam Barth's avatar
      Add more dartdoc to widgets.dart · 9251504a
      Adam Barth authored
      This patch includes documentation for transitions.dart and for
      scrollable.dart.
      9251504a
    • Adam Barth's avatar
      Remove HomogeneousViewport · 5b896694
      Adam Barth authored
      The virtual viewport machinery now handles all of these use cases.
      Previous clients of ScrollableWidgetList can use ScrollableLazyList
      instead.
      5b896694
  18. 05 Feb, 2016 1 commit
    • Hixie's avatar
      Improve exceptions and asserts for rendering lib. · 1a0484cc
      Hixie authored
      * Use actual exceptions rather than assertions containing code
        containing strings when trying to give messages to authors.
      * Introduce RenderingError which is an AssertionError that takes a
        string argument, to support the above.
      * Provide a BoxDimensions.hasBoundedWidth/hasBoundedHeight API.
      * Document BoxDimensions.isNormalized.
      * Provide more useful information when we assert isNormalized and find
        that it is false.
      * When finding the size is infinite, crawl the tree to figure out which
        render box is likely responsible for the infinite constraints.
      * Provide more information when size doesn't match the constraints.
      * Provide more information when intrinsic dimension methods violate the
        constraints.
      * Only spam a huge amount of information for the first exception from
        the rendering library. I've noticed a lot of people looking at the
        last exception printed rather than the first and that's very
        misleading -- after the rendering library hits an exception, all bets
        are off regarding what'll happen in the future. All kinds of asserts
        might fire.
      * Improve docs around the debug methods and flags for the above.
      * Make Block default to have no children. Previously, giving no children
        crashed with a confusing message about a null deref in an assert.
      1a0484cc
  19. 04 Feb, 2016 1 commit
  20. 03 Feb, 2016 1 commit
  21. 22 Jan, 2016 2 commits
  22. 21 Jan, 2016 2 commits
    • Adam Barth's avatar
      Move scroll_behavior into widgets · 5065339c
      Adam Barth authored
      Previously this code was in the animation layer, which didn't make much
      sense because scrolling is a widget concern.
      5065339c
    • Adam Barth's avatar
      Merge simulationStepper into AnimationController · fc8ac4eb
      Adam Barth authored
      Now that we've decided that Animation<double> isn't confined to the interval
      0.0 to 1.0, we can expand AnimationController to cover the use cases that used
      to require SimulationStepper.
      
      This patch merges SimulationStepper into AnimationController and ports the one
      stand-alone client of simulation stepper over to using AnimationController.
      fc8ac4eb
  23. 11 Jan, 2016 2 commits
  24. 07 Jan, 2016 1 commit