keymanapp / keyboards

Open Source Keyman keyboards
138 stars 255 forks source link

[sil_euro_latin]: longpress comma on shift layer outputs '<' #2375

Closed bharanidharanj closed 9 months ago

bharanidharanj commented 9 months ago

Describe the bug

I noticed that after pressing the comma from the long press menu option, an incorrect special character '<" is displayed on the text input screen.

Reproduce the bug

  1. Install Keyman 17.0.181-alpha build.
  2. Open Keyman In-App.
  3. Close the Get Started menu dialog.
  4. Verify the keyboard is on the Shift layer.
  5. Long press the 'full stop' key.
  6. Choose ',' from the long press menu options.

Here, I noticed that the text input screen displays the '<' character instead of displaying the ',' character.

I have attached the video file for reference.

https://github.com/keymanapp/keyman/assets/19683143/9fa2a0e4-9a4c-4e3a-9e0a-aa163adc234c

Expected behavior

Choosing the comma key should output the same on the text input screen.

Related issues

No response

Keyman apps

Keyman version

17.0.181-alpha

Operating system

Android 5.0, 9.0, 12.0

Device

Redmi Note 8 Pro, API 31 emulator

Target application

No response

Browser

No response

Keyboard name

EuroLatin (SIL) Keyboard

Keyboard version

1.2

Language name

English

Additional context

No response

darcywong00 commented 9 months ago

aha, this is a bug on the sil_eurolatin touch layout keyboard.

On the shift layer, the longpress comma key is defined as https://github.com/keymanapp/keyboards/blob/511293d3316c18c50a83a346b24807c2116aa796/release/sil/sil_euro_latin/source/sil_euro_latin.keyman-touch-layout#L913-L919

So KeymanWeb interprets it as shift+, outputting < Note how the other longpress keys on . use U_XXXX on the key IDs.

I think changing that line from K_COMMA to U_002C should fix it.

DavidLRowe commented 9 months ago

@bharanidharanj Thanks for finding and reporting this! @darcywong00 Thanks for a quick fix!