1. 11 Sep, 2015 1 commit
    • Hixie's avatar
      Change how we decide if two nodes can sync. · 5125bd5d
      Hixie authored
      If it's a StatefulComponent, then it's ok to reuse it so long as it
      hasn't been initialised.
      
      If it's a regular Component or a TagNode, then it's always ok to reuse.
      
      If it's a RenderObjectWrapper, then it's ok to reuse so long as it
      doesn't have a renderObject.
      
      To put it another way, this changes how we prevent the following
      nonsensical situations from arising:
      
       - Sync two stateful StatefulComponents together
       - Sync two RenderObjectWrappers with RenderObjects together
      
      When either of those cases happen, we just drop the old one on the
      ground and use the new one unchanged.
      5125bd5d
  2. 09 Sep, 2015 1 commit
  3. 04 Sep, 2015 1 commit
  4. 02 Sep, 2015 1 commit
    • Adam Barth's avatar
      Move widgets and rendering inside src · 693ddcd8
      Adam Barth authored
      Code outside of package:sky should import this code using
      
      package:sky/rendering.dart
      package:sky/widgets.dart
      
      Moving this code into the "src" directory is a convention that signifies that
      and it cleans up the generated dartdoc because the libraries in the src
      directory aren't included in the generated documentation. Instead, the classes
      are documented in the widgets.dart and rendering.dart libraries.
      693ddcd8
  5. 31 Aug, 2015 1 commit
    • Hixie's avatar
      Remove the inner SizeObserver from ScrollableWidgetList. · 820137b7
      Hixie authored
      Adds a HomogeneousViewport class that works like MixedViewport but
      handles only children that have all the same height.
      
      Converts ScrollableWidgetList to use that, so that we don't waste a
      frame looking at the size of the contents each time we change size.
      
      This allows a number of seemingly pointless double-pumps in the tests
      to be removed.
      
      Other changes that were necessary to support the above:
      
       - RenderBlock now supports minExtent (think 'min-height' in CSS)
       - RenderBlock now supports itemExtent (forces the height of each
         child to be the same, so that the itemExtent passed to the fixed-
         height scrollables are all authoritative instead of a source of
         bugs when they don't match)
       - RenderBlockViewport now supports horizontal scrolling
       - improved the style of the isInfinite assert in box.dart
       - fixed the position of a comment in mixed_viewport.dart
       - added a test
       - made the logic for how many items to show be more precise
      820137b7
  6. 28 Aug, 2015 3 commits
  7. 26 Aug, 2015 2 commits
  8. 21 Aug, 2015 1 commit
    • Adam Barth's avatar
      Rename all the scrollable classes · 010589be
      Adam Barth authored
      Block -> BlockBody
      ScrollableBlock -> Block
      FixedHeightScrollable -> ScrollableWidgetList
      VariableHeightScrollable -> ScrollableMixedWidgetList
      BlockViewport -> MixedViewport
      010589be
  9. 20 Aug, 2015 2 commits
  10. 17 Aug, 2015 1 commit
  11. 04 Aug, 2015 1 commit
  12. 28 Jul, 2015 2 commits
  13. 22 Jul, 2015 1 commit
    • Hixie's avatar
      Introduce an explicit Key type. · 74575775
      Hixie authored
      This fixes some theoretical bugs whereby we were using hashCode to try
      to get unique keys for objects, but really we wanted object identity.
      It also lays the groundwork for a new GlobalKey concept.
      
      I tried to keep the impact on the code minimal, which is why the "Key"
      constructor is actually a factory that returns a StringKey. The code
      has this class hierarchy:
      
      ```
         KeyBase
          |
         Key--------------+---------------+
          |               |               |
         StringKey    ObjectKey       UniqueKey
      ```
      
      ...where the constructors are Key and Key.stringify (StringKey),
      Key.fromObjectIdentity (ObjectKey), and Key.unique (UniqueKey).
      
      We could instead of factory methods use regular constructors with the
      following hierarchy:
      
      ```
         KeyBase
          |
         LocalKey---------+---------------+
          |               |               |
         Key      ObjectIdentityKey   UniqueKey
      ```
      
      ...with constructors Key, Key.stringify, ObjectIdentityKey, and
      UniqueKey, but I felt that that was maybe a more confusing hierarchy.
      I don't have a strong opinion on this.
      74575775
  14. 20 Jul, 2015 1 commit
  15. 16 Jul, 2015 1 commit