It's common to want a scrolling viewport but with padding around the
contents. Teaching Block about this makes the places that do this
substantially simpler and further buries ScrollableViewport and
BlockBody (they're now only used in scrollable.dart).
Draggable is now itself a gesture arena member. This means it won't
conflict with other gesture recognisers in the same path.
This also allows variants of Draggable that are triggered by other
gestures.
Also, some cleanup of DoubleTapGestureRecognizer, GestureDetector, and
PrimaryPointerGestureRecognizer.
Also, make MultiTapGestureRecognizer support a timeout for longpress.
Also, make Draggable data be typed.
Also, hide warnings about constructor warnings for now. Analyzer doesn't
support them yet. (Have to do this on a per-line basis)
Directions for future research:
- animating the avatar (enter/exit transitions)
- interaction with the navigator (canceling a drag on page navigation, etc)
- double-tap draggable
- runApp(new MaterialApp()) was crashing long after the constructor. Now
it asserts in a more useful location.
- remove the default name for NamedRouteSettings. It was unused anyway.
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#53Fixes#1221
One Scaffold layout to rule them all
Expanded the existing CustomMultiChildLayout to handle all of the Scaffold's children.
This change also eliminates the FAB input dead-zone.
Make all the *GestureRecognizer classes inherit from a class called
GestureRecognizer. Give the old GestureRecognizer a name that is more
precise about its purpose. Remove the members of GestureArenaMember that
aren't used by GestureArenas.
- change how we expose settings at the RenderObject layer so that it's
easier to maintain.
- expose the Widget owner chain in the RenderObject layer debug output
- add debug info to RenderOpacity, RenderIgnorePointer, RenderListener
- make the output for text nodes prettier
Previously, we'd leave the old values in the parent data if the types matches,
but not all render objects would reset these values during layout. For example,
RenderProxyBox doesn't set the position field because it doesn't read the
position field. However, leaving the old data there violates the invariants of
the box protocol and can cause trouble (e.g., localToGlobal giving the wrong
result).
Fixes#1939
We still have the --http option as a fallback for now. Once we're confident the
--no-http version works, we'll drop the --http support.
Also, create the FLX in a temp directory and then delete the temp directory
when we're done. Finally, pull the Linux artifacts from the cloud storage
bucket that the buildbot is uploading to.