* Fix entering newline
* utf8toutf16
* formatting
* Address reviews
* send *model“
* capture oldtext and selection before newline is added to model
* use model vs _active_model_ for consistency
* Formatting
* updates
Co-authored-by: Renzo Olivares <roliv@google.com>
Specifying the `--enable-impeller` flag will switch the renderer to using
Impeller instead of Skia. On platforms where Impeller is not supported, this
flag is ignored.
The notion of the `flutter::SurfaceFrame` has been augmented. Now, in the
absence of a Skia surface to render to, the surface frame will render into a
display list instead.
Impeller variants of the context and surface variants have been added to
`shell/gpu` and `shell/platform`. The variants prepare surface frames that
don’t/can’t specify a Skia surface thus forcing the surface frame to render to a
display list instead. Then, in the submit callback, they forward the display
list ops to the Impeller display list dispatcher.
This scheme has been chosen as it requires the fewest updates to engine
internals which all depend on Skia data structures. Instead of updating all
call-sites to be Skia neutral, the display list interface itself is being made
graphics package agnostic.
* Fix local text value and selection not updating when delta is sent to framework
* readd new line
* Add test
* whitespace
* whitespace
* formatting
Co-authored-by: Renzo Olivares <roliv@google.com>
This splits the nested event loop in the keyboard manager on iOS into two parts: The first times out after 2 seconds, and if that happens, prints an NSLog indicating that the framework took a long time to respond, and then it enters the event loop again, waiting forever this time. This means the behavior doesn't change from what it is now, but will log when things take a long time.
When the embedder receives a TextInput.clearClient message from the
framework (typically when a text field loses focus), if the user is
currently inputting composing text using an IME, commit the composing
text, end composing, and clear the IME's composing state.
This also exposes a public `editingState` getter on
FlutterTextInputPlugin as part of the TestMethods informal protocol.
This allows us to get at the text editing state as a dictionary in
tests.
Issue: https://github.com/flutter/flutter/issues/92060
Previously, the macOS embedder relied on the deprecated built-in log
handling in lib/ui/ui_dart_state.cc. Instead, we now register a
dedicated log handler for the macOS embedder. This is used, for example,
to output Dart 'print' calls.
While unlikely that we'll break the internal generic fallback logging,
it's preferable to keep platform-specific functionality in the embedder.
Issue: https://github.com/flutter/flutter/issues/99636