Adds a null check before dereferencing in
PlatformPlugin.popSystemNavigator. platformPluginDelegate is allowed to
be null, as it is in the PlatformPlugin(Activity, PlatformChannel)
constructor.
This changes the text handling so that keyboard events are sent to the framework first for handling, and then passed to the text input plugin, so that the framework has a chance to handle keys before they get given to the text field.
This is complicated by the async nature of the interaction with the framework, since GTK wants a synchronous response. So, in this change, I always tell GTK that the event was handled, and if it wasn't, then I re-dispatch the event once we know one way or the other.
* Create FlutterGLCompositor.
* Add additional state to manage frame status and CALayers to FlutterGLCompositor
FlutterGLCompositor supports rendering multiple layers. The first layer is rendered using the FlutterView. Additional CALayers are created if there is more than one layer.
Platform view support will be added in following PR.
This fixes a problem in Android key event handling where, because I was only using a single bool to indicate that we were re-dispatching, there was a race condition when multiple keys were pending (sent to the framework, awaiting responses).
This fixes that by switching to a mechanism that uses the event itself to tell if it was redispatched.
In doing this, I realized that because key events can come from either the dispatchEvent call, or through the InputConnectionAdaptor, I needed to handle both routes properly so that the events would all be handled, and all go through the same mechanism on the framework side.
The other linux shell (and all the other embedding) have support for
getting the locales from the system and sending them over the
flutter/localization channel. The glfw shell does not have that which is
causing a crash on an assert now that Locale is no longer nullable
in Platform.
This adds a similar approach to what is going on over in the other linux
shell.
Sends the flutter/settings update message to the engine after starting
it. For now values other than 24-hour time preference are hard-coded,
but dark mode support can be added later.
Fixes https://github.com/flutter/flutter/issues/65590
This change contains a couple of changes that should have been in
github.com/flutter/engine/commit/4903a92b2b16e480c486965f6c102f335f1a4ecb
but fell through the cracks
First one lifts the initialization of the flutter::RunConfiguration so that
the asset manager gets set on the persistant cache before the shader
warmup happens. I'm not sure how this didnt end up in the first PR I
think it got mangled during merge conflict resolution. no test coverage
for that code because its in the middle of a 400 line constructor
Second one fixes a race condition that the tests dont catch because the
tests are single threaded. This change restructures the test that missed
this bug so that it would have caught that bug and will catch comparable
bugs.