Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[macOS] Setting composing range to TextRange.collapsed(0) breaks text input #64741

Closed
@pulyaevskiy

Description

@pulyaevskiy

Steps to Reproduce

  1. Clone https://github.com/memspace/zefyr.git
  2. Go to packages/zefyr/example and run with flutter run -d macOS
  3. Click on "Embedded in a form" example
  4. In the middle multiple field (that's ZefyrEditor) type in abc and press Enter

Expected results:

Enter should've added a new line

Actual results:

No new line appears.
While debugging I noticed that in my TextInputClient.updateEditingValue I get unexpected control characters when pressing Enter (13 (\r) instead of 10 (\n)), Delete (adds 8 code unit to the text) and arrow keys also modify the text itself instead of changing selection.

I scanned through the standard EditableTextState implementation and couldn't find anything that would indicate any issues in the way I set up input connection or handle updates.

When I use regular multiline TextField everything looks correct there and no special characters are present.

In the attached logs at the very end I have some printed statements for the raw text code units I receive from the platform side.

Logs

Logs were too big for a Github comment, so here is Gist:
https://gist.github.com/pulyaevskiy/5a1b28545994f0dae73185ba476c5929

$ flutter analyze
Analyzing example...
No issues found! (ran in 3.2s)
[✓] Flutter (Channel master, 1.22.0-2.0.pre.93, on Mac OS X 10.15.6 19G73, locale en-US)
    • Flutter version 1.22.0-2.0.pre.93 at /Users/anatoly/Projects/flutter
    • Framework revision f35a8b7470 (14 hours ago), 2020-08-26 21:33:03 -0700
    • Engine revision 388193a67b
    • Dart version 2.10.0 (build 2.10.0-62.0.dev)

[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/anatoly/Library/Android/sdk
    ✗ Flutter requires Android SDK 29 and the Android BuildTools 28.0.3
      To update using sdkmanager, run:
        "/Users/anatoly/Library/Android/sdk/tools/bin/sdkmanager" "platforms;android-29" "build-tools;28.0.3"
      or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions.
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.6, Build version 11E708
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio
    • Android Studio at /Applications/Android Studio 3.2 Preview.app/Contents
    • Flutter plugin version 28.0.2
    • Dart plugin version 181.5616
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 48.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] IntelliJ IDEA Community Edition (version 2018.1.6)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 26.0.2
    • Dart plugin version 181.4892.1

[✓] VS Code (version 1.39.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.6.0

[✓] Connected device (3 available)
    • macOS (desktop)  • macos      • darwin-x64     • Mac OS X 10.15.6 19G73
    • Web Server (web) • web-server • web-javascript • Flutter Tools
    • Chrome (web)     • chrome     • web-javascript • Google Chrome 84.0.4147.135

! Doctor found issues in 1 category.

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work lista: desktopRunning on desktopa: text inputEntering text in a text field or keyboard related problemsengineflutter/engine repository. See also e: labels.found in release: 1.22Found to occur in 1.22has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-macBuilding on or for macOS specifically

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions