JetBrains / compose-multiplatform

Compose Multiplatform, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable.
https://jetbrains.com/lp/compose-multiplatform
Apache License 2.0
15.42k stars 1.12k forks source link

iOS TextField, Japanese conversion candidates not showing with physical Romaji keyboard input #3416

Open paxbun opened 11 months ago

paxbun commented 11 months ago

Describe the bug

The latter two bugs are fixed by JetBrains/compose-multiplatform-core#699.

Affected platforms

Versions

To Reproduce

  1. Modify the App.kt of the Android & iOS template like the following.

    MaterialTheme {
    Column {
        Text("OS: ${getPlatformName()}")
        var text by remember { mutableStateOf(TextFieldValue()) }
        TextField(text, onValueChange = { text = it })
    }
    }
  2. Type "kousyou" with Romaji keyboard input.

    kousyou こうしょう can be converted into many sino-japanese words (e.g., 交渉 or 公証). You can see a list of 51 candidates here. kousyou and koushou are equivalent.

  3. Press the <space> or <down arrow> keys.

    This must show the full list of conversion candidates of kousyou こうしょう.

  4. Press the <return> key to end the conversion.

    You can see that 交渉 is duplicated. With JetBrains/compose-multiplatform-core#699, 交渉 is not duplicated.

  5. Type "kousho" (Not the u at the end!) with Romaji keyboard input.

    kousho corresponds to こうしょ.

  6. Press the <backspace> key.

    Since the text field contained こうしょ, the text field must contain こうし now, but you can see the text field contains こうしこうし. With JetBrains/compose-multiplatform-core#699, こうし is not duplicated.

Expected behavior The candidate list must appear near the text field. For example, in the system-default Notes app:

https://github.com/JetBrains/compose-multiplatform/assets/17005454/c2a61524-c9fb-4b47-8878-b494b0eec14d

Screenshots Reproduction:

https://github.com/JetBrains/compose-multiplatform/assets/17005454/2079b5e6-d42d-4e99-b4bc-7a6327357fb5

Reproduction with JetBrains/compose-multiplatform-core#699:

https://github.com/JetBrains/compose-multiplatform/assets/17005454/f997c887-168c-4d29-bfa1-fa36b43f67c7

Additional context For those not used to the Japanese writing system, please refer to the Wikipedia page.

dima-avdeev-jb commented 11 months ago

Thanks for such a greate description!

okushnikov commented 12 hours ago

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.

okushnikov commented 12 hours ago

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.

okushnikov commented 12 hours ago

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.