Previously we asserted that we got a pointer move to the location where the
pointer up occured, but not all sources of pointer packets respect that
invariant. Specifically, on the iOS simulator, of you drag outside the window,
you'll get a stream of pointers that violates that invariant.
This patch teaches the converter to insert a PointerMoveEvent to move the
pointer to the location where the up occurs, repairing the invariant.
Fixes#1912
This patch makes it easier to use the auto layout API:
* We no longer use operator== because that requires an ugly cast by the
API user.
* Also, "leftEdge" is now just "left" for less verbosity.
* AutoLayoutChild not implies its key from the AutoLayoutParam object.
* We now correctly layout every child of a RenderAutoLayout object even
if the solver doesn't flush any updates to that child.
This patch teaches the widget framework how to use Cassowary-based
autolayout. To integrate autolayout with widgets, I had to refactor how
RenderAutoLayout worked a bit. Now RenderAutoLayout follows the same
delegate pattern we use for custom paint and custom layout.
This patch improves the checkbox animation as suggested by the design
team. The color transition now occurs earlier in the animation and there
are fewer components to the animation.
Fixes#1614
Fixes https://github.com/flutter/flutter/issues/1331
Hopefully this will be enough to start with. If this continues to be a
point of confusion we can see about adding more documentation or
changing the API somehow.
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#1510Fixes#785
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.
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.
Move StepTween to tween.dart.
Move _buildIndicator() methods to be next to the build() methods they're
used from, so that reading the code is easier.
Fix typos, add some comments, style nits.
We expose `imageCache`, which is an ImageCache, but previously the class
was private which means there was no documentation for the methods on
that object.
Fixes#1750
This patch tightens up the imports in this file and hides some more of
the implementation details by making RepeatingCurveTween and StepTween
private.
Also, removed a CurvedAnimation with a linear curve. That's not needed
because the animation controller itself is an Animation<double>.
This animation expands/collapses an arc that's 3/4ths of a circle.
The next iteration begins where the previous appeared to finish.
This happens while the whole thing rotates, such that the starting point of each
expansion moves in a star-wise pattern around the circle.
See:
https://www.google.com/design/spec/components/progress-activity.html
(note: the video here demonstrating this animation is actually slightly incorrect...
we'll hopefully update it soon)