Windows does not provide a system notification the embedder can
subscribe to to determine when a screen reader or other assistive
technology that requires the semantics tree has been enabled. [1]
In the absence of such a notification, we watch for queries for the
IAccessible COM object representing the root node of the semantics tree,
and on receipt of such queries we enable the semantics tree. For the
time being, we assume that if accessiblity is enabled, it will be
enabled for the duration of the application lifetime. In a future patch
we can optimise this by adopting the approach taken by Chromium, which
is to disable semantics if we haven't received a query within some
reasonable timeout.
This patch enables Flutter's semantics tree; a follow-up patch wires in
the AccessibilityBridge which maintains the AXTree of COM objects that
is the Windows representation of the Flutter SemanticsTree.
Issue: https://github.com/flutter/flutter/issues/77838
[1]: https://docs.microsoft.com/en-us/windows/win32/winauto/screen-reader-parameter
When a text input client is cleared, such as when the user changes focus
from one text input widget to another, or when the window itself loses
focus, cancel IME composing mode, close the composing candidates window
(if any), and reset the composing text.
Issue: https://github.com/flutter/flutter/issues/90503
* Web
* macos
* Linux
* Easier web impl
* doc and format
* Better linux impl
* Format
* Better impl mac
* Format
* Windows
* Format
* Apply suggestions from code review
Co-authored-by: Greg Spencer <gspencergoog@users.noreply.github.com>
Co-authored-by: Greg Spencer <gspencergoog@users.noreply.github.com>
This PR adds the dark theme support for both windows and winuwp engine, based on flutter/flutter#54612.
On Win32: using a registry value that is not documented. (I tested on Windows 10.0.19043.1165)
On UWP: using default background color. (I couldn't find WinRT API that returns dark/light directly, without xaml package.)
Flutter PR for win32: flutter/flutter#88520.
This PR will closeflutter/flutter#54612.
This PR will complete one item in flutter/flutter#70214.
Fixes an issue where pressing AltGr key (on supporting layouts such as Spanish) on Windows causes CtrlLeft to hang pressed for both Flutter and Windows.
Co-authored-by: Greg Spencer <gspencergoog@users.noreply.github.com>
This refactoring moves the Application Launch and Uninstall methods to
the ApplicationStore class. This simplifies writing tests for Command
classes since the Application class is now a plain old data class, and
ApplicationStore can be replaced with a fake implementation for hermetic
testing, while I'll do in a follow-up patch.
Bug: https://github.com/flutter/flutter/issues/83072
Extracts each of the commands (listapps, install, uninstall, launch)
into a command class that is registered at startup. This simplifies
adding further commands, and cleans up the code a bit.
This is a refactoring that introduces no changes to existing functionality.
Adds an uninstall command that uninstalls the specified application by
its package family name.
This currently attempts to remove for all users, but in future, we may
want to restrict install and uninstall to the current user only.
Also renames ApplicationStore::GetInstalledApplications() to
ApplicationStore::GetApps()
UWP apps must be launched using their package family name, but are
uninstalled using their full package name. This patch updates the
Application class to store both.
Further, when launching UWP apps, we now do a lookup to verify the
package exists before attempting to launch it.
Replaces manual registry crawling with a lookup via
Windows.Management.Deployment.PackageManager. This eliminates the need
for the Registry class.
Covered by existing tests.
Issue: https://github.com/flutter/flutter/issues/81756