1. 16 Feb, 2016 1 commit
  2. 14 Feb, 2016 1 commit
  3. 12 Feb, 2016 1 commit
  4. 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
  5. 10 Feb, 2016 2 commits
    • Hixie's avatar
      More BoxConstraints asserts · 29654016
      Hixie authored
      The asserting will continue until morale improves!
      
      * Convert all assert(*.isNormalized) checks to use the new
        debugAssertIsNormalized technology.
      * Convert CustomMultiChildLayout to use the new RenderingError
        technology to greatly improve the detail in errors you get when
        writing CustomMultiChildLayout delegates.
      * Add BoxConstraints.copyWith().
      * Indent the descendants in the rendering exception data dump so that
        when you have multiple children it's clearer what's going on.
      29654016
    • Hixie's avatar
      Tapping through drag targets. · 4d5e4067
      Hixie authored
      Factor out the HitTestBehavior logic so that RenderMetaData can use it.
      
      Use that in DragTarget.
      4d5e4067
  6. 31 Jan, 2016 1 commit
    • Adam Barth's avatar
      Adds the ability to move the caret by tapping · 36099383
      Adam Barth authored
      Now the text input control knows how to move the caret when you tap
      inside the string. There's still some rough edges to polish up, but this
      patch is the first step.
      
      Fixes #108
      36099383
  7. 27 Jan, 2016 1 commit
  8. 19 Jan, 2016 1 commit
  9. 18 Jan, 2016 1 commit
  10. 13 Jan, 2016 1 commit
    • Adam Barth's avatar
      Handle degenerate transforms better · 192c6e24
      Adam Barth authored
      No you can't hit things inside degenerate transforms. Tranforming from global
      coordaintes to degenerate local coordinates gives you Point.origin. Also,
      upgrade vector_math to get a better invert constructor.
      
      Fixes #1161
      Fixes #1224
      192c6e24
  11. 12 Jan, 2016 1 commit
  12. 11 Jan, 2016 3 commits
    • Adam Barth's avatar
      Always using OpacityLayer for blending · 635168d9
      Adam Barth authored
      We don't know how to accuately compute paint bounds in the render tree.
      Instead, we can rely on the compositor to compute the paint bounds for
      us if we use OpacityLayer to do our opacity blends.
      
      Fixes the shadow when closing the menu in the stocks app.
      635168d9
    • Adam Barth's avatar
      Rename RenderObject.hasLayer to isRepaintBoundary · 0b775984
      Adam Barth authored
      Also, introduce alwaysNeedsCompositing to force the "needs compositing"
      bit to true without necessarily introducing a ContainerLayer into the
      layer tree. A future patch will make use of alwaysNeedsCompositing to
      optimize opacity layers.
      0b775984
    • Ian Hickson's avatar
      tightenWidth(), tightenHeight() => tighten(width:, height:) · c21b565f
      Ian Hickson authored
      This makes it more consistent with tightFor(), and also makes it
      easier to tighten both directions at once when you're not sure you
      will always do so (e.g. if you have a height and width that might be
      null, and want to tighten whichever ones aren't null).
      c21b565f
  13. 09 Jan, 2016 1 commit
  14. 24 Dec, 2015 1 commit
    • Ian Hickson's avatar
      RenderFractionalTranslation · 9bad312a
      Ian Hickson authored
      - Add RenderFractionalTranslation, a render box that does a
        translation based on a FractionalOffset.
      
      - Make FractionalOffset more like Offset
        - dx/dy instead of x/y
        - add /, ~/, %
        - add .zero
      
      - Add alongOffset and alongSize to FractionalOffset so that you can
        easily apply FractionalOffset to Offsets and Sizes. (Better name
        suggestions welcome.)
      
      - Add transformHitTests boolean to RenderTransform (also on
        RenderFractionalTranslation), and to classes based on it.
      
      - Remove the fade from Dismissable. We can add it back using the
        builder-with-child pattern like Draggable if we need it. See #1003
        for tha feature request.
      
      - Rename a bunch of variables in dismissable.dart.
      
      - Change the test for dismissable to not handle leftwards dismisses
        one pixel different from rightwards dismisses, and cleaned up the
        resulting effect on the test (mostly making sure we had the right
        number of pumps, with comments explaining what each one was).
      
      Fixes #174.
      9bad312a
  15. 11 Dec, 2015 1 commit
    • Ian Hickson's avatar
      applyPaintTransform() improvements · d1364643
      Ian Hickson authored
      Previously, applyPaintTransform() had to know how it was positioned in
      its parent, even though that's really the parent's responsibility.
      
      Now, applyPaintTransform() is given a child and applies the transform
      that it would give the child during paint.
      
      This makes it possible for applyPaintTransform() to work across
      coordinate system boundaries (e.g. box to sector, or view to box --
      previously, view to box only worked because we explicitly skipped that
      step -- since view doesn't actually apply a transform, it doesn't
      really matter).
      d1364643
  16. 10 Dec, 2015 1 commit
  17. 09 Dec, 2015 3 commits
    • Adam Barth's avatar
      5d6d2585
    • Adam Barth's avatar
      Add some more dartdoc to widgets · e5585841
      Adam Barth authored
      e5585841
    • Ian Hickson's avatar
      Catch un-normalized BoxConstraints · 1a049c14
      Ian Hickson authored
      Add BoxConstraints.isNormalized feature.
      
      Use this feature in asserts in all the intrinsic dimension methods, in
      various relevant BoxConstraints methods, and in layout().
      
      Wrap the _DebugSize logic in BoxConstraints.constrain() in an assert
      block to avoid a branch in release mode.
      
      Remove the logic in BoxConstraints.isSatisfiedBy() that dealt with
      non-normalized values.
      
      Add BoxConstraints.normalize().
      
      Make RenderCustomOneChildLayoutBox.performLayout() only set
      parentUsesSize on the child if the constraints aren't tight.
      1a049c14
  18. 08 Dec, 2015 1 commit
    • Ian Hickson's avatar
      Make BoxDecoration replaceable. · 2afa87df
      Ian Hickson authored
      Factor out a reusable interface called Decoration from BoxDecoration.
      
      Make all the consumers of BoxDecoration and the erstwhile BoxPainter
      into consumers of Decoration.
      
      Make a BoxPainter be something you get from a Decoration, rather than
      something to which you pass a BoxDecoration.
      
      Rename Shape to BoxShape now that it's documented specifically as
      applying to boxes.
      
      Move EdgeDims to its own file.
      
      Move FractionalOffset up so that it's with the other helper classes in
      its file rather than alone at the end.
      
      Minor change to RenderClipOval's hit testing to avoid taking an
      unnecessary square root.
      
      Rename BoxDecorationPosition to DecorationPosition since
      RenderDecoratedBox now takes any Decoration.
      
      Implement hit testing for rounded rects.
      
      Rename AnimatedBoxDecorationValue to AnimatedDecorationValue, and make
      it support lerping across any Decoration (by deferring to the objects
      involved).
      2afa87df
  19. 07 Dec, 2015 3 commits
  20. 05 Dec, 2015 2 commits
    • Ian Hickson's avatar
      PointerInput refactor · f1625556
      Ian Hickson authored
      Instead of PointerInputEvent having a "type" field, we now have a
      different class for each pointer type.
      
      This has ripple effects throughout the system.
      
      I also did code cleanup in affected files while I was there.
      f1625556
    • Adam Barth's avatar
      Remove PaintingCanvas · abf03595
      Adam Barth authored
      We can just use Canvas now.  The two are the same thing.
      abf03595
  21. 04 Dec, 2015 2 commits
  22. 30 Nov, 2015 1 commit
  23. 22 Nov, 2015 1 commit
  24. 20 Nov, 2015 1 commit
    • Adam Barth's avatar
      Callback identity is too fragile for CustomPaint · 72329cf4
      Adam Barth authored
      Many of the widgets that use CustomPaint were spamming repaints because
      CustomPaint repaints when the identity of the onPaint callback changes, which
      it does every build for StatelessComponents.
      
      This patch changes CustomPaint to use a CustomPainter, similar to the new
      custom layout widgets. The CustomPainter has a `shouldRepaint` function along
      with its `paint` function. This function gives clients explicit control over
      when the custom paint object repaints.
      72329cf4
  25. 19 Nov, 2015 3 commits
    • Adam Barth's avatar
      Add debugDumpLayerTree to dump the layer tree · dfbd8c6a
      Adam Barth authored
      To help debugging issues with the layer tree.
      dfbd8c6a
    • Adam Barth's avatar
      Refactor PaintingContext · fc576814
      Adam Barth authored
      This patch simplifies PaintingContext with several goals:
      
      1) We now call a callback instead of assuming the caller has a single child to
         paint. This change will let us handle render objects that wish to paint more
         than one child.
      2) We now avoid creating lots of empty picture layers because we don't eagerly
         start recording pictures. Instead, we wait for the first caller to touch the
         canvas before creating the picture recorder.
      3) We now are more consistent about which values have incorporated the painting
         offset.
      fc576814
    • 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
  26. 18 Nov, 2015 1 commit
    • Adam Barth's avatar
      Reduce record time in Stocks drawer animation by 55% · 298f4a6e
      Adam Barth authored
      Now we use a ForcedLayer in the navigator overlay to cache the recording for
      each entry in the overlay. This mechanism just caches the display list, not the
      underlying pixels.
      
      Also, remove the "dispose" notification in the Layer tree because it was
      disposing layer too eagerly. We don't actually need this notification for
      anything other than eagerly freeing some C++ memory.
      298f4a6e
  27. 13 Nov, 2015 1 commit
  28. 05 Nov, 2015 2 commits
    • Adam Barth's avatar
      Add the ability to have translucent gesture detectors · 2fc5a759
      Adam Barth authored
      A translucent gesture detector still listens for gestures but also lets the
      content visually behind the detector receive events.
      2fc5a759
    • Adam Barth's avatar
      Improve hit testing · 9bc64540
      Adam Barth authored
      Now a RenderBox is considered hit if one of its children are hit or it itself
      decides that it's hit. In particular, empty space inside a flex won't be hit
      because none of the children are located there and a RenderFlex doesn't
      consider itself hittable.
      
      Fixes #53
      Fixes #1221
      9bc64540