1. 22 Apr, 2016 3 commits
  2. 21 Apr, 2016 1 commit
    • Adam Barth's avatar
      A blinking cursor should push only one frame (#3445) · 161f945e
      Adam Barth authored
      Prior to this patch, we were pushing two frames each time the cursor blinked.
      In turning the cursor on or off, the markNeedsPaint call was triggering another
      frame to be scheduled because we cleared a bit in the scheduler at the
      beginning of the frame instead of at the end of the frame.
      
      To implement scheduling correctly, we actually need two bits: one for
      ensureVisualUpdate, which just promises to get to the end of the pipeline soon,
      and scheduleFrame, which promises to get to the beginning of the pipeline soon.
      161f945e
  3. 08 Apr, 2016 1 commit
  4. 07 Apr, 2016 1 commit
  5. 01 Apr, 2016 1 commit
  6. 31 Mar, 2016 1 commit
  7. 29 Mar, 2016 1 commit
  8. 18 Mar, 2016 1 commit
  9. 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
  10. 14 Mar, 2016 1 commit
  11. 12 Mar, 2016 4 commits
  12. 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
  13. 13 Feb, 2016 1 commit
    • Hixie's avatar
      SizeObserver crusade: drawer · e5cf7fe3
      Hixie authored
      Drawer doesn't need a SizeObserver, since it only looks at the size
      in event handlers. It can just go and probe the tree to read the size.
      
      Also, change from using _kEdgeDragWidth to using _kWidth when figuring
      out how much of the drawer to show when dragging it from the edge, since
      that is more likely to match the drawer's width.
      e5cf7fe3
  14. 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
  15. 27 Jan, 2016 2 commits
  16. 20 Jan, 2016 2 commits
    • Adam Barth's avatar
      Remove Performance and AnimatedValue · b988a875
      Adam Barth authored
      This patch removes Performance and AnimationValue now that we've ported the
      framework over to AnimationController and Tween. This patch also cleans up the
      names of the AnimationController classes now that they don't have to avoid
      conflicts with the old animation API. Specifically, I've made the following
      renames:
      
       * Animated -> Animation
       * Evaluatable -> Animatable
       * PerformanceStatus -> AnimationStatus
      
      This patch is just renames and moving code around. There aren't any changes in
      behavior.
      b988a875
    • Adam Barth's avatar
      Finish porting material.dart to AnimationController · 08b27fd7
      Adam Barth authored
      After this patch, there aren't any direct uses of Performance in material.dart.
      08b27fd7
  17. 11 Jan, 2016 1 commit
  18. 09 Jan, 2016 1 commit
    • Adam Barth's avatar
      Drawer edge swipe convers entire screen · 1ef3f82e
      Adam Barth authored
      When I tightened up the layout constraints for the Drawer in the
      Scaffold, I ended up making the edge swipe detector cover the entire
      screen.  This patch fixes that issue by putting the gesture detector for
      the edge swipe just around the container with the proper width. We now
      use a global key to maintain the state across hierarchy changes.
      1ef3f82e
  19. 03 Dec, 2015 1 commit
    • Adam Barth's avatar
      Fix a large number of Drawer bugs · 1d195cb9
      Adam Barth authored
      This patch restructures how we handle drawer. The drawer is now a child of the
      Scaffold, which wraps the Drawer in a DrawerController. The DrawerController
      manages the interaction with the navigator as well as the edge swiping. The
      DrawerController's state machine is driven almost entirely off its Performance,
      which it now owns completely.
      
      Fixes #90
      Fixes #187
      Fixes #192
      Fixes #194
      Fixes #604
      1d195cb9
  20. 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
  21. 24 Nov, 2015 1 commit
  22. 20 Nov, 2015 1 commit
    • Hixie's avatar
      OverlayRoute.finished() · 2e0e6aa4
      Hixie authored
      Rather than have delayed calls to super.didPop(), which raises my
      eyebrow every time I see it, this provides a separate finished()
      function to call, and uses the convention that if you want to call it
      yourself, you just don't call super.didPop().
      2e0e6aa4
  23. 19 Nov, 2015 2 commits
    • Adam Barth's avatar
      Popup menu in Stocks throws exception · 2d824894
      Adam Barth authored
      Previously, we were putting a ForcedLayer just below the overlay, but that
      causes trouble for routes like the popup menu that want to position themselves
      inside the overlay. Instead, I've moved the ForcedLayer down into ModalRoute.
      
      Also, rename ForcedLayer to RepaintBoundary, which is more descriptive of what
      this widget does.
      
      Fixes #485
      2d824894
    • Adam Barth's avatar
      Reduce paint time for Stocks drawer animation by 88% · 95eb6685
      Adam Barth authored
      Now we use a forced layer around the reprojected content of the drawer, which
      means we don't have to re-record it during the slide animation. This saves 2ms
      per frame.
      
      The total main-thread time for the drawer animation is now 2.0ms.
      95eb6685
  24. 18 Nov, 2015 1 commit
    • Hans Muller's avatar
      Update shadow rendering · d9153a13
      Hans Muller authored
      Shadows now render as three seprate MaskFilter.blur components per the most recent Material spec.
      
      The shadows Map was replaced by a similar Map called elevationToShadow with entries that match the 10 elevations specifed by http://www.google.com/design/spec/what-is-material/elevation-shadows.html.
      
      The "level" property (many classes) is now called "elevation", to match the Material spec.
      
      BoxShadow now includes a spreadRadius parameter - as in CSS box-shadow. Renamed the BoxShadow blur property to blurRadius to further align BoxShadow with CSS box-shadow.
      d9153a13
  25. 06 Nov, 2015 1 commit
  26. 03 Nov, 2015 1 commit
    • Adam Barth's avatar
      Stocks list doesn't update when stocks are loaded · 78d35391
      Adam Barth authored
      Previously, we passed widgets up the hierarchy to display them in the overlay,
      but that breaks the change propagation logic because those widgets won't get
      rebuilt.  Now we pass WidgetBuilders instead, which can be rebuilt when the
      overlay rebuilds.
      
      Fixes #1913
      78d35391
  27. 30 Oct, 2015 1 commit
  28. 27 Oct, 2015 1 commit
  29. 22 Oct, 2015 1 commit
    • Adam Barth's avatar
      Add Navigator.of · de395582
      Adam Barth authored
      Now you don't need to pass the navigator around everywhere.
      de395582
  30. 21 Oct, 2015 1 commit
    • Hixie's avatar
      Make Route.build() arguments match RouteBuilder() · babba2f0
      Hixie authored
      Assert at build time that PageRoute route builders do not return null
      widget trees.
      
      Also very minor new code comments and code reorg to help make the heroes
      patch easier to review.
      
      (These are changes that are unrelated to Heroes but that were part of
      the Heroes patch.)
      babba2f0
  31. 20 Oct, 2015 1 commit
  32. 16 Oct, 2015 1 commit
    • Hixie's avatar
      Sundry debugging aids and fixes · d0d84e16
      Hixie authored
      (These are all the debugging-related fixes and trivial typo fixes that I
      extracted out of my heroes branch.)
      
      Fix rendering.dart import order.
      
      Introduce a debugLabel for Performances so that when you create a
      performance, you can tag it so that if later you print it out, you can
      figure out which performance it is.
      
      Allow the progress of a PerformanceView to be determined (but not set).
      
      Allow subclasses of PerformanceView that are constants to be created by
      defining a constant constructor for PerformanceView.
      
      Introduce a debugPrint() method that throttles its output. This is a
      test to see if it resolves the problems people have been having with
      debugDumpRenderTree() et al having their output corrupted on Android. It
      turns out (according to some things I read On The Internets) that
      Android only has a 64KB kernel buffer for its logs and and if you output
      to it too fast, it'll drop data on the floor. If this does in fact
      reliably resolve this problem, we should probably move the fix over to
      C++ land (where "print" is implemented) so that any use of print is
      handled (avoiding the interleaving problem we have now if you use both
      debugPrint() and print()).
      
      Fix a bug with the debugging code for "size". In the specific case of a
      RenderBox having a parent that doesn't set parentUsesSize, then later
      the parent setting parentUsesSize but the child having its layout
      short-circuited (e.g. because the constraints didn't change), we didn't
      update the _DebugSize object to know that now it's ok that the size be
      used by the parent, and we'd assert.
      
      Also, allow a _DebugSize to be used to set the size of yourself.
      Previously you could only set your size from a regular Size or from your
      child's _DebugSize.
      
      Add more debugging information to various Widgets where it might be
      helpful.
      
      Make GlobalKey's toString() include the runtimeType so that when
      subclassing it the new class doesn't claim to be a GlobalKey instance.
      
      Include the Widget's key in the Element's description since we don't
      include it in the detailed description normally (it's in the name part).
      
      Fix a test that was returning null from a route.
      d0d84e16