Now that the new schema is supported on the stable channel, and the old
schema is considered legacy, the template should always create plugins
using the new schema.
When generating the plugin registrant for Linux, also generate a
makefile that can be included in the app-level Makefile to manage all of
the plugin targets and flags, exporting them in a few known variables
for use in the outer makefile.
Part of #32720
* 8af3b1b4d Roll src/third_party/skia f0a13d04c233..7f5e3c7e43c7 (6 commits) (flutter/engine#16810)
* 060a7733a Roll fuchsia/sdk/core/linux-amd64 from QU3ft... to 94el1... (flutter/engine#16821)
When Focus.unfocus is called, the caller usually just thinks about wanting to remove focus from the node, but really, unfocus is a request to automatically pass the focus to another (hopefully useful) node.
This PR removes the focusPrevious flag from unfocus, and replaces it with a disposition enum that indicates where the focus should go from here.
The other value of the UnfocusDisposition enum is UnfocusDisposition.scope.
UnfocusDisposition.previouslyFocusedChild is closest to what focusPrevious used to do: focus the nearest enclosing scope and use its focusedChild field to walk down the tree, finding the leaf focusedChild. This PR modifies it slightly so that it walks up to the nearest focusable enclosing scope before trying to focus the children. This change addresses #48903
A new mode: UnfocusDisposition.scope will focus the nearest focusable enclosing scope of this node without trying to use the FocusScopeNode.focusedChild value to descend to the leaf focused child. This is useful as a default for both text field finalization and for what happens when canRequestFocus is set to false. It allows the scope to stay focused so that nextFocus/previousFocus still work as expected, but removes the focus from primary focus.
In addition to those changes, unfocus called on a FocuScope that wasn't the primary focus used to unfocus the primary focus instead. I removed that behavior, since it was buggy: if the primary focus was inside of a child scope, and you called unfocus on the parent scope, then the child scope could have focused another of its children instead, leaving the scope that you called unfocus on with hasFocus returning true still. If you want to remove the focus from the primary focus instead of the scope, that's easy enough to do: just call primaryFocus.unfocus().
Fixes#48903
* Fix expression evaluation test leaking flutter_tester processes.
Let flutter_tester process complete, wait for it completion, kill the test only if didn't complete on time.
* Type annotation
This implements VisualDensity changes for text fields*. By default, the layout of the text field does not change.
If the ThemeData.visualDensity is set to a value other than zero, then the density of the UI will increase or decrease. See the VisualDensity docs for more information.
(*In reality, the changes are on the InputDecorator class, not on the text field.)
I also fixed a problem that I think I found with _Decoration where it doesn't compare isDense or isCollapsed as part of its operator==.
* 858185cd5 Roll src/third_party/skia 659cc1c90705..19304d88c8be (5 commits) (flutter/engine#16778)
* ecdfc91d1 Roll fuchsia/sdk/core/linux-amd64 from PGfiE... to QU3ft... (flutter/engine#16779)