This moves the app template more toward being a more generic starting
point for any Flutter application, eliminating some hard-code
assumptions about there being a single window/engine pair that is
directly bound to the life of the application:
- Moves the runloop into its own class, making it capable of servicing
any number of engine instances.
- Moves the logic for setting up a window containing only a Flutter view
into a window subclass for ease of re-use.
- Makes quit-on-window-close an optional property. (Long term this
should be even more generic, like a quit-when-last-window-closes
option, but this is a short-term improvement that removes the binding
between the runloop and the window).
- Allows for multiple instances of Win32Window to exist without issues
relating to the window class registration.
Since there are getting to be a non-trivial number of files associated
with the runner, this moves the source into a runner/ directory, as is
already done on some other platforms.
Note that creating multiple Flutter windows at the same time still
doesn't work correctly even with this change, but this addresses some of
the known issues, and makes it easier to test in the future (e.g., for
debugging engine-level issues with multiple instances).
Fixes#45397
* e55b4476f Use const refs in for loops where reasonable (flutter/engine#17484)
* e2b86556b Roll src/third_party/skia 8efbbbc0d1d4..e70e0c055f56 (1 commits) (flutter/engine#17496)
* a9c6222cd Roll fuchsia/sdk/core/mac-amd64 from 6V5BR... to tKvUB... (flutter/engine#17497)
* fa0907512 Roll fuchsia/sdk/core/linux-amd64 from -jFTb... to TWx2R... (flutter/engine#17498)
* 983d1e170 Fix include paths of fml/time headers in the shell and rasterizer (flutter/engine#17502)
* 09bc1fc45 Small updates to objcdocs (flutter/engine#17151)
* 0b3f2d3e9 Always cache SkSL when using the Metal backend. (flutter/engine#17468)
* ff62dec5c Roll to clang11, mark 4 (flutter/engine#17483)
* 08ae3bb63 Remove JSON codec from C++ client wrapper (flutter/engine#17312)
* 2e909652a Fix bad texture view config (flutter/engine#17486)
* abc72933e [pipeline] Add trace event for lag between target and display times (flutter/engine#17384)
* Updated bin/internal/fuchsia-linux.version
This adds a new toggleable attribute to the Radio widget. This allows a radio group to be set back to an indeterminate state if the selected radio button is selected again.
Fixes#53791