keymanapp / keyman

Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
https://keyman.com/
Other
402 stars 112 forks source link

bug(linux): extra character inserted when typing in Google doc #12360

Open Nnyny opened 2 months ago

Nnyny commented 2 months ago

Describe the bug

From the community site:

This is what I want to type on Google doc - သေသေချာချာ ကစားလုပ်နော်

​This is what happens when I use Myanmar 3 (1.7.3) keyboard on Ubuntu 22.04.4 with Keyman for linux while I use Google doc - ေသေ​ေသေချာချာ ကစားလုပ်​ေနော်

I don’t encounter the above problem when I type Burmese using Myanmar 3 (1.7.3) keyboard using Libre Officer Writer. Any comment? Help? Fix?

This behavior occurs in Google doc and slide. However, it doesn't occur in Google sheet but the cursor keep jumping around when backspace to delete the characters.

Note: the keyboard works completely fine in Firefox and Text Editor.

Reproduce the bug

  1. Type abab
  2. Ouput ေသေ​ေသေ
  3. Backspace to delete the character but get 2 extra ​ေ before it actually delete the text

Expected behavior

  1. Output ဘေဘေ

Related issues

No response

Keyman apps

Keyman version

17.0.328

Operating system

Ubuntu 22.04.3

Device

Windows 11 Home Single Language

Target application

Google doc, slide and sheet

Browser

Firefox 130.0 64-bit

Keyboard name

Myanmar3 (SIL)

Keyboard version

1.7.3

Language name

Burmese

Additional context

No response

ermshiperete commented 2 months ago

I get similar behaviors with Khmer Angkor and IPA. It looks like surrounding text doesn't work correctly in Google Docs on Firefox.

ermshiperete commented 2 months ago

Created Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1916767

mcdurdin commented 2 months ago

Moved to Waiting-external milestone for now to take it out of triage.

devosb commented 2 months ago

It looks to me like the issue is with U+1031 MYANMAR VOWEL SIGN E. Visually, this character is displayed before the consonant (visual order). In memory, this character needs to be stored after the consonant (logical order). So the first question is what order (visual or logical) is the keyboard sending the codepoints? A simple keyboard configuration would expect the typing to be in logical order. A more complicated keyboard configuration would allow typing in visual order, and then re-order U+1031 to be in logical order.

I don't know why different applications handle U+1031 differently. Maybe some applications are doing the needed re-ordering?

mcdurdin commented 2 months ago

@devosb in this instance it is unrelated to the vowel order or Myanmar writing system as it is visible as an issue with any writing system. See the firefox bug report above