1. 31 Oct, 2016 1 commit
  2. 21 Sep, 2016 2 commits
  3. 16 Sep, 2016 1 commit
  4. 07 Jun, 2016 1 commit
  5. 06 Jun, 2016 1 commit
  6. 02 Jun, 2016 1 commit
  7. 20 May, 2016 1 commit
  8. 17 May, 2016 2 commits
  9. 12 Apr, 2016 1 commit
  10. 06 Apr, 2016 1 commit
    • Adam Barth's avatar
      LazyBlock docs and physics · 6fd68597
      Adam Barth authored
      This patch adds dartdoc to LazyBlock. Also, this patch fixes the scrolling
      physics of LazyBlock. Previously, we updated a running simulation only when the
      change in scroll behavior changed the current scroll offset. Now we update
      running simulations every time the behavior changes because the simulation
      might depend on quantities other than the current scroll offset.
      6fd68597
  11. 05 Apr, 2016 1 commit
    • Adam Barth's avatar
      Adds a first draft of LazyBlock · 618e7e49
      Adam Barth authored
      LazyBlock is intended as a replacement for MixedViewport. Rather than
      
      maintaining a table of all the observed child sizes (like
      
      MixedViewport), LazyBlock works by dead reckoning the location of the
      
      children based on the existing viewport. This approach makes it easier
      
      to resize children because LazyBlock doesn't cache any additional
      
      information that would need to be invalidated.
      
      
      
      This patch contains a first draft of LazyBlock that works in a simple
      
      usage scenario. Subsequent patches will replace
      
      ScrollableMixedWidgetList with LazyBlock and port the existing
      
      ScrollableMixedWidgetList tests over to LazyBlock.
      
      
      
      Related to #3075
      618e7e49
  12. 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
  13. 14 Mar, 2016 1 commit
  14. 12 Mar, 2016 4 commits
  15. 11 Mar, 2016 1 commit
  16. 09 Mar, 2016 1 commit
  17. 04 Mar, 2016 1 commit
  18. 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
  19. 06 Feb, 2016 1 commit
    • 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
  20. 21 Jan, 2016 1 commit
  21. 14 Jan, 2016 1 commit
    • Adam Barth's avatar
      Stocks has both tabs reified in the wiget tree · b5ed355b
      Adam Barth authored
      We were recomputing which widgets to show only when we were on the other side
      of the repaint boundaries. That doesn't work well for pageable lists because we
      come to rest exactly on a repaint boundary, which means we don't cull the other
      page.
      
      After this patch, we recompute the set of widgets using an edge-trigger when we
      hit the boundary. That's better than using a level-trigger so that we don't
      continuously recompute the set of widget as we sit at the boundary.
      b5ed355b
  22. 11 Jan, 2016 1 commit
  23. 06 Jan, 2016 3 commits
    • Adam Barth's avatar
      Switch PageableList over to using RenderList · e64d93a5
      Adam Barth authored
      This patch moves PageableList off HomogeneousViewport and onto RenderList and
      friends, making it match the new ScrollableList.
      e64d93a5
    • Adam Barth's avatar
      Fix assert in Stocks app · d2a1389e
      Adam Barth authored
      When paging a scrollable list, we were trying to read the render object's size
      at a time when we're not allowed to read it. Instead, encode the information
      into the repaint limit, which is more correct (and faster) anyway.
      d2a1389e
    • Adam Barth's avatar
      Switch clients of ScrollableList to ScrollableList2 · b1f9138f
      Adam Barth authored
      This patch also changed ScrollableList2 to use an Iterable instead of an
      List for its children. This change lets clients map their underlying
      data lazily. If the clients actually have a concrete list, we skip the
      extra copy and grab the child list directly.
      b1f9138f
  24. 05 Jan, 2016 2 commits
    • Adam Barth's avatar
      Complete features of ScrollableList2 · 37106ea6
      Adam Barth authored
      This patch implements the remaining missing features of ScrollableList2.
      It should now be nearly a drop-in replacement for ScrollableList. The
      next patch will switch callers over to the new machinery.
      37106ea6
    • Adam Barth's avatar
      Introduce ScrollableList2 · 99bca282
      Adam Barth authored
      ScrollableList2 uses the same pattern as ScrollableGrid, which requires the
      client to allocate widgets for every list item but doesn't inflate them unless
      they're actually needed for the view. It improves on the original
      ScrollableList by not requiring a rebuild of the whole visible portion of the
      list when scrolling. In fact, small scrolls can often be handled entirely by
      repainting.
      99bca282
  25. 04 Jan, 2016 1 commit
    • Adam Barth's avatar
      Add support for scrollable grids · 6106fa9d
      Adam Barth authored
      We now support (vertically) scrollable grids with viewporting. If the
      scroll doesn't reveal any new rows, we execute the scroll with a repaint
      (i.e., no layout). If the scroll reveals a new row, we trigger a layout
      to change the set of materialized children in the viewport.
      6106fa9d