Skip to content

Comments

fix(core): fix keydown/up handling for LDML keyboards #️⃣#15609

Draft
ermshiperete wants to merge 1 commit intotest/core/minkbdfrom
fix/core/15569_ldml
Draft

fix(core): fix keydown/up handling for LDML keyboards #️⃣#15609
ermshiperete wants to merge 1 commit intotest/core/minkbdfrom
fix/core/15569_ldml

Conversation

@ermshiperete
Copy link
Contributor

For LDML keyboards this change fixes the emit_key flag so that it has the same value for the KeyDown and the KeyUp event. This fixes some problems with stuck keys. Previously we would set emit_key=TRUE on KeyDown but emit_key=FALSE on KeyUp for frame keys. This caused Linux to never see the KeyUp event, resulting in a stuck key.

Also add unit tests that verifies that the actions that we get after calling km_core_process_event are what we expect.

Fixes: #15569
Fixes: #15550

@github-project-automation github-project-automation bot moved this to Todo in Keyman Feb 20, 2026
@github-actions github-actions bot added core/ Keyman Core fix labels Feb 20, 2026
@keymanapp-test-bot keymanapp-test-bot bot added the user-test-missing User tests have not yet been defined for the PR label Feb 20, 2026
@keymanapp-test-bot
Copy link

keymanapp-test-bot bot commented Feb 20, 2026

User Test Results

Test specification and instructions

ERROR: user tests have not yet been defined

Test Artifacts

  • Developer
    • Keyman Developer - build : all tests passed (no artifacts on BuildLevel "build")
    • Compiler Regression Tests - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman Developer (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • kmcomp.zip - build : all tests passed (no artifacts on BuildLevel "build")
    • kmcomp.zip (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
  • Keyboards
    • Test Keyboards - build : all tests passed (no artifacts on BuildLevel "build")
  • macOS
    • Keyman for macOS - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman for macOS (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
  • Web
    • KeymanWeb Test Home - build : all tests passed (no artifacts on BuildLevel "build")
  • Windows
    • Keyman for Windows - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for Windows - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for Windows (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman for Windows (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • Text Editor (ARM64) - build : all tests passed (no artifacts on BuildLevel "build")
    • Text Editor (x64) - build : all tests passed (no artifacts on BuildLevel "build")
    • Text Editor (x86) - build : all tests passed (no artifacts on BuildLevel "build")

@ermshiperete ermshiperete changed the title fix(core): fix keydown/up handling for LDML keyboards fix(core): fix keydown/up handling for LDML keyboards #️⃣ Feb 20, 2026
@keymanapp-test-bot keymanapp-test-bot bot added this to the A19S23 milestone Feb 20, 2026
For LDML keyboards this change fixes the `emit_key` flag so that it has
the same value for the KeyDown and the KeyUp event. This fixes some
problems with stuck keys. Previously we would set `emit_key=TRUE` on
KeyDown but `emit_key=FALSE` on KeyUp for frame keys. This caused Linux
to never see the KeyUp event, resulting in a stuck key.

Also add unit tests that verifies that the actions that we get after
calling `km_core_process_event` are what we expect.

Fixes: #15569
Fixes: #15550
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core/ Keyman Core fix user-test-missing User tests have not yet been defined for the PR

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

1 participant