We really shouldn't have two separate network library wrappers... I filed https://github.com/flutter/flutter/issues/2889 on that. But for now, this makes one of them have a generally better error handling story, and makes the other one only dump to the console in debug mode. It also makes both use debugPrint instead of print, and makes one use the 'mojom' prefix for mojom imports.
Previously, border with '0' was ambiguous. Sometimes we treated it as
hairline borders, sometimes as "don't show the border", though even in
the latter case we did some graphics work sometimes. Now we have an
explicit BorderStyle.none flag to not draw the border efficiently.
Previously we updated only the reactivated element's inherited widgets. Now we
update all the inherited widgets for the whole subtree that's being
reactivated. We need to visit the whole subtree anyway, so there isn't much of
a loss.
Fixes#2733Fixes#2438Fixes#1701
Previously, when the content extent changed during a scroll interaction, we'd
stop the current scroll interaction and reset the scroll offset. Now we try to
continue the scroll interaction (e.g., drag, fling, or overscroll) even through
the underlying scroll behavior has changed.
For physics-based scroll interactions, we keep the current position and
velocity and recompute the operative forces. For drag interactions, we keep the
current position and continue to let the user drag the scroll offset.
After this patch, we still disrupt non-physical scroll animations that are
operating outside the new scroll bounds because it's not clear how we can
sensibly modify them to work with the new scroll bounds.
New RenderAligningShiftedBox abstract class for render boxes with
"alignment", which as of now is:
- RenderPositionedBox
- RenderConstrainedOverflowBox (ex RenderOverflowBox)
- RenderSizedOverflowBox
- RenderFractionallySizedOverflowBox (ex RenderFractionallySizedBox)
(The respective widgets are Align, OverflowBox, SizedOverflowBox, and
FractionallySizedBox. They haven't been renamed.)
Also I added some toString details.
We were setting a negative velocity tolerance, which never triggered because we
assume tolerances are positive numbers. Now we use a positive tolerance and
assert to catch this case in the future.
Fixes#2765