* Revive "Push physical layers with paths instead of rects in RenderPhysicalModel. (#13942)"
That commit was reverted due to a performance problem which has now been
fixed.
* Roll engine 05fe72d068e19c7886e8d27f9b004201d5ad1300
This provides a way to draw colors, images, and general decorations on Material widgets, without interfering with InkWells that are further descendants of the widget.
This thus provides a cleaner way to solve the issue of FlatButtons and InkWells not working when placed over Image widgets than the old hack of introducing a transparency Material.
Fixes#3782.
Also, some fixes to documentation, and remove a redundant property on the Image widget.
* Revert "Reverting package changes until I can figure out how to fix Windows. (#14007)"
This reverts commit 6fda8ee821dd2e63e7949e57b10efde84bb0a3cc.
* Make prepare_package run on Windows
* libtxt now calculates selection rectangles reflecting the heights of
differently styled text spans within a line (matching Blink)
* libtxt does not round the coordinates of selection rectangles (unlike Blink)
Fixes https://github.com/flutter/flutter/issues/12553
The root cause of https://github.com/flutter/flutter/issues/12553 was that when the refresh indicator went away, which happened after the avatars had started their image loads but before the avatars had loaded, the DecoratedBoxes, along with the rest of the list, got GlobalKey-reparented, which caused the RenderDecoratedBox objects to unregister from the DecorationImagePainters, but they never re-registered since the whole subtree was in a RepaintBoundary and was therefore not explicitly repainted when the tree got reattached.
This fixes the bug by explicitly requiring any RenderDecoratedBox to repaint when it's reattached. This is probably a little more aggressive than required; we could probably expose a flag on Decoration that says whether or not the onChanged handler will ever be invoked, and only call markNeedsPaint if that's true, but we'll do that if it turns out that there's a performance issue here.
(This patch also introduces a bunch of improved debugging information that I used to track down the bug.)
* Revert "Fixed output validation. (#14005)"
This reverts commit d84398db72807f8910833d5fe44a097be152c74a.
* Revert "Update package prep script to do async process execution and emit output as it happens. (#13918)"
This reverts commit b7169c1d951aa188c1cdc3b980e257e8a92f8abe.
- Switches to async process execution, which now shows output as it happens instead of in chunks when the process completes
- Now uses ProcessManager so that it may be mocked for the test.
- Adds in the download and install of mingit on Windows.
- Updated package dependencies because of added dependency on process package.
`RenderSemanticsGestureHandler` is no longer a semantics boundary, which allows us to correctly mark disabled buttons as disabled without having their semantics size and semantics node id change unexpectedly.
Fixes https://github.com/flutter/flutter/issues/12589.
Fixes https://github.com/flutter/flutter/issues/11991.
See also https://github.com/flutter/flutter/issues/11993.
This change also required some refactoring to how we deal with `twoPaneSemantics` scrolling as it previously relied on `RenderSemanticsGestureHandler` being a semantics boundary. This should also make the underlying logic easier to understand.
In addition, the following minor changes are included in this PR:
* Removal of orphaned and unused `SemanticsConfiguration.isMergingDescendantsIntoOneNode`.
* Logic optimizations for `markNeedsSemanticsUpdate` .
* Fix for edge case where `MergeSemantics` failed to merge semantics.
* Use of emojis to better indicate leaf merging in the printed semantics tree.
* Better assert message for adding invisible child semantics nodes.
* Make some semantics tests robuster by not relying on creation order of SemanticsNode ids across test boundaries.
Fixes https://github.com/flutter/flutter/issues/13943.
This broke the coverage tool, as material/animated_icons/animated_icons.dart
was loaded twice as a part, once directly animated_icons_private_test, and one
through animated_icons_private_test->flutter_tester->...->material
The coverage package assumes a 1:1 mapping between VM scripts and URIs due to a
limitation in the underlying vm_service_client package, which currently doesn't
provide a unique identifier for VM scripts.
The underlying issue is tracked by dart-lang/coverage#194.
This simply updates the package dependencies by running flutter update-packages --force-upgrade.
I'm doing this with no other changes, because the last time I tried that, redness occurred. I want to isolate the problem to a "clean" update of the packages.
It looks like the plugins device_info, connectivity, and url_launcher haven't yet had their gradle configurations updated, so they fail when trying to build with the new gradle. I did not upgrade for those three packages only (in flutter_gallery) until we are ready to fix them (fixing them for master will break them for alpha users, so we need to do an alpha roll to do that).
This started breaking the analyzer following https://github.com/flutter/flutter/pull/13889
The test version of the material_animated_icons did not include the meta
package (needed for the @required tag) and was also not including all
the generated icons files.
Ideally we should find a way to fix this without enumerating all the
icons in the test file.
But for now just adding the missing file to fix the build breakage.
Fixes#13743Fixes#12379
Follow-up to #13745
Also adds an option to hide gestures introduced by `InkWell` and `InkResponse` from the semantics tree (see also `GestureDetector.excludeFromSemantics`).
This reverts the change to `user_accounts_drawer_header.dart`
(and the associated test), as it was causing regressions in layout
of the drawer header.
https://github.com/flutter/flutter/issues/13743
* Create CupertinoScrollbar
* handle main axis margin
* Adaptive material scrollbar and tests
* Small tweaks
* reapply changes on head
* Docs
* start
* Refactored ScrollbarPainter to be more immutable
* fix tests
* fix bug: one animationcontroller pointed to multiple painters
* some docs tweak
* remove unused import
* review
* review
* add dispose
**tl;dr:** A `RenderObject` can only be an effective semantics boundary if it actually owned a `SemanticsNode` in the previous tree generation.
When using the `BlockSemantics` widget it is possible to introduce `RenderObject`s that are configured to be a semantics boundary, but because their semantics are blocked by `BlockSemantics` they will not (immediately) end up owning a `SemanticsNode`. When now a descendant of such a node-less semantics boundary marks itself as needing a semantics update we walk up the tree until we find the closest semantics boundary (which is our node-less `RenderObject`). We now incorrectly assume that this semantics boundary has a valid `SemanticsNode` and only regenerate the semantics subtree below this node. However, because the identified semantics boundary doesn't actually own a valid `SemanticsNode` asserts are throwing (e.g. `Child with id xx is invisible and should not be added to tree.`).
To fix this problem, we can just abort the walk if we reach a semantics boundary without a semantics node because (for now) we know that the semantics information of this branch will not make it into the final semantics tree.
If the semantics block is ever removed, the current algorithm re-generates the semantics for the entire branch and the semantics will be up-to-date then despite the abort. I've added a test to verify this to make sure it continues to work even when we change the algorithm.
Fixes https://github.com/flutter/flutter/issues/13326.
/cc @gavindoughtie FYI