1. 16 Dec, 2015 1 commit
  2. 30 Nov, 2015 1 commit
    • Hixie's avatar
      NavigatorTransaction · f9ea1ce8
      Hixie authored
      To make it easier to avoid pushing twice in one frame, provide a
      transaction mechanism for the navigator.
      f9ea1ce8
  3. 23 Nov, 2015 1 commit
  4. 16 Nov, 2015 1 commit
    • Hixie's avatar
      More resilient Widget tests · d041f3ea
      Hixie authored
      - force the time dilation to 1.0 for the Widget tests, so that a local
        change doesn't break all the tests during development.
      - add missing license block to all the files.
      - set ui.window.onBeginFrame to null when you use WidgetTester, so that
        the engine doesn't trigger any confusing frames after our fake frames.
      d041f3ea
  5. 30 Oct, 2015 1 commit
  6. 27 Oct, 2015 1 commit
    • Ian Hickson's avatar
      Track scroll position · 8a900f90
      Ian Hickson authored
      - Change RouteArguments to pass the route's BuildContext rather than
        the Navigator. This caused the bulk of the examples/ and .../test/
        changes (those are mostly mechanical changes). It also meant I could
        simplify Navigator.of().
      
      - Make initState() actually get called when the State's Element is in
        the tree, so you can use Foo.of() functions there. Added a test for
        this also.
      
      - Provide a RouteWidget so that routes have a position in the Widget
        tree. The bulk of the route logic is still in a longer-lived Route
        object for now.
      
      - Make Route.setState() only rebuild the actual route, not the whole
        navigator.
      
      - Provided a Route.of().
      
      - Provided a Route.writeState / Route.readState API that tries to
        identify the clients by their runtimeType, their key, and their
        ancestors keys, up to the nearest ancestor with a GlobalKey.
      
      - Made scrollables hook into this API to track state. Added a test to
        make sure this works.
      
      - Fix the debug output of GestureDetector and the hashCode of
        MixedViewport.
      
      - Fixed ScrollableWidgetListState<T> to handle infinite lists.
      8a900f90
  7. 10 Oct, 2015 1 commit
  8. 05 Oct, 2015 1 commit
    • Hixie's avatar
      Simplify the usage of Navigator's routes argument · 90a0f630
      Hixie authored
      (These are changes cherry-picked from in-flight branches since they are
      more independent and could be helpful even without those changes.)
      
      - Change RouteBuilder's signature to take a single argument in which the
        other fields are placed, so that we can keep iterating on those
        arguments without having to break compatibility each time. Also, this
        makes defining route builders much simpler (only one argument to
        ignore rather than a variable number).
      
      - Expose the next performance to RouteBuilders, since sometimes the
        route itself might not be where it's used.
      
      - Allow BuildContext to be used to walk children, just like it can for
        ancestors
      
      - Allow BuildContext to be used to get the Widget of the current
        BuildContext
      
      - Allow StatefulComponentElement to be referenced with a type
        specialisation so that you don't have to cast when you know what the
        type you're dealing with actually is.
      90a0f630
  9. 01 Oct, 2015 3 commits
  10. 26 Sep, 2015 1 commit
  11. 25 Sep, 2015 1 commit
  12. 15 Sep, 2015 1 commit
    • Hixie's avatar
      Ignore generation of child if child is unchanged · dfd821e5
      Hixie authored
      Also:
      
       - don't mark a node as from the new generation if it is dirty, since we
         know it still has to be built.
      
       - establish the rule that you can't call setState() during initState()
         or build().
      
       - make syncChild() return early for unchanged children.
      
       - update the tests, including adding a new one.
      dfd821e5
  13. 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