spiegel-keyman/linux/ibus-keyman/src
Eberhard Beilharz 6d39ab0b06
Merge pull request #13625 from keymanapp/fix/linux/13590_arrow-keys
fix(linux): allow unhandled keys to pass through to compliant apps

This change fixes a bug introduced in #13372. Before that engine.c determined if keys are handled or not. For keys that we didn't handle we returned FALSE. However, that didn't allow the Core to adjust the context where necessary, so #13372 moved that to Core. However, this caused ibus_keyman_engine_process_key_event to return TRUE even if we didn't handle the key. Instead we called ibus_engine_forward_key_event with the non-handled key. This worked in most applications, but not in the Text Editor.

This change now does no longer call ibus_engine_forward_key_event for compliant apps but instead returns FALSE from ibus_keyman_engine_process_key_event for unhandled keys, allowing the app to see and act on the key event.

An 'unhandled' key here is a key that doesn't match a rule in the keyboard and isn't a character key. Core returns a QIT_EMIT_KEYSTROKE action for that key.

Fixes: #13590
2025-04-03 10:26:27 +02:00
..
test Merge pull request #13247 from keymanapp/chore/linux/improve-test-messages 2025-02-17 17:11:34 +01:00
bcp47util.c feat(linux): Minimize tags before adding keyboards 2023-07-19 16:20:27 +02:00
bcp47util.h feat(linux): Minimize tags before adding keyboards 2023-07-19 16:20:27 +02:00
engine.c Merge pull request #13625 from keymanapp/fix/linux/13590_arrow-keys 2025-04-03 10:26:27 +02:00
engine.h chore(linux): change SIL International to SIL Global 2024-12-10 10:26:44 +01:00
keycodes.h refactor(linux): mark undocumented keycodes as internal 2025-03-26 16:49:31 +01:00
keyman-service.c chore(linux): change SIL International to SIL Global 2024-12-10 10:26:44 +01:00
keyman-service.h chore(linux): change SIL International to SIL Global 2024-12-10 10:26:44 +01:00
keyman-version.h.in chore(linux): Set correct version number on ibus component 2021-10-28 10:36:23 +02:00
keyman.xml.in fix(linux): Fix setting libexecdir 2023-02-23 17:43:09 +01:00
KeymanSystemServiceClient.cpp refactor(linux): changes to get integration tests working 2025-02-14 17:30:42 +01:00
KeymanSystemServiceClient.h refactor(linux): changes to get integration tests working 2025-02-14 17:30:42 +01:00
keymanutil.c refactor(linux): remove a warning 2025-03-31 16:33:31 +02:00
keymanutil.h chore(linux): change SIL International to SIL Global 2024-12-10 10:26:44 +01:00
keymanutil_internal.h fix(linux): Fix version comparison 2024-01-31 14:47:35 +01:00
kmpdetails.c chore(linux): change SIL International to SIL Global 2024-12-10 10:26:44 +01:00
kmpdetails.h refactor(linux): Use auto cleanup 2023-10-10 15:52:51 +02:00
main.c chore(linux): change SIL International to SIL Global 2024-12-10 10:26:44 +01:00
meson.build fix(linux): disable assertions in release builds 2024-11-27 18:04:35 +01:00