This adds a FocusableActionDetector, a widget which combines the functionality of Actions, Shortcuts, MouseRegion and a Focus widget to create a detector that defines actions and key bindings, and will notify that the focus or hover highlights should be shown or not. This widget can be used to give a control the required detection modes for focus and hover handling on desktop and web platforms.
I replaced a bunch of similar code in many of our widgets with this widget, and found that pretty much any control that wants to be focusable wants all of these features as well: focus highlights, hover highlights, and actions to activate it.
Also eliminated an extra _hasFocus variable in FocusState that wasn't being used.
GLFW key events set modifier flags based on what the modifier state was before the event, unlike every other platform. This modifies the GLFW key support to take that into account.
As a small cleanup, I fixed a documentation macro reference for the modifier flags that was duplicate
This adds support for the command key for text selection/editing on macOS. I had ported the text editing code (in #42879), but forgot to add support for the command key itself. This also adds a test that tests the text editing on multiple platforms instead of just testing Android.
There appears to still be a bug (filed #44135) where we're losing key events sometimes on macOS, leaving some keys "stuck" on, but this PR at least allows the right key combinations to be used.
* Switch from using app.progress to app.url for passing web launch urls
* Update daemon.md
* Change app.url -> app.webLaunchUrl
* Add tests for app.webLaunchUrl event
* Update tests with recent changes after rebasing
* Sort Localization generation output
- When creating locales that were assumed from existing locales, the
file that is used is non-deterministic. This adds a sort to the iterator
to ensure that the same existing locale is used to generate the assumed
locale
- When generating material, cupertino and date localizations, the generated getters were not sorted. This
introduces an alphabetic sort
* remove main.dart.snapshot
Updates localizations to match what is now generated. It's unclear what caused the change: it didn't happen because of a flutter PR change, so we're still looking for where the source of the non-determinism is. In the meantime, this will fix the build.
Convert the call to getWordBoundary to use a TextPosition, in preparation for landing flutter/engine#13727, which switches the desired API to the final desired API.