Fix game control keys with language layout
This commit is contained in:
parent
93ea339c0f
commit
27145fdaf3
@ -1622,3 +1622,74 @@ index e3fab8d9..26bded99 100644
|
||||
--
|
||||
2.41.0
|
||||
|
||||
From 4872c1fcdc8bbe146e967d004edf63f5994b21f8 Mon Sep 17 00:00:00 2001
|
||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||
Date: Thu, 21 Dec 2023 08:26:48 +0900
|
||||
Subject: [PATCH] src/ibusenginesimple.c: Don't commit any characters
|
||||
|
||||
Revert a part of the previous patch of #2495 because it explains
|
||||
"Super-space and space key can launch IBus Emojier." but I cannot
|
||||
remember what I tried to fix.
|
||||
|
||||
IBus XKB engines should not commit any keysyms before the key event is
|
||||
sent to the application with IBUS_IGNORED_MASK flag even if the key
|
||||
is not an ASCII because any characters can be control characters
|
||||
by application.
|
||||
E.g. VIM cursor mode "hjkl" keys or game cursor keys with language
|
||||
layouts.
|
||||
|
||||
Fixes: https://github.com/ibus/ibus/commit/ad883dc
|
||||
|
||||
BUG=https://github.com/ibus/ibus/issues/2588
|
||||
---
|
||||
client/gtk2/ibusimcontext.c | 6 ++++++
|
||||
src/ibusenginesimple.c | 15 ++++++++++-----
|
||||
2 files changed, 16 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
|
||||
index cfc08c20..ebc8d869 100644
|
||||
--- a/client/gtk2/ibusimcontext.c
|
||||
+++ b/client/gtk2/ibusimcontext.c
|
||||
@@ -361,6 +361,12 @@ ibus_im_context_commit_event (IBusIMContext *ibusimcontext,
|
||||
keyval == GDK_KEY_KP_Enter) {
|
||||
return FALSE;
|
||||
}
|
||||
+ /* #2588 If IBus tries to commit a character, it should be forwarded to
|
||||
+ * the application at once with IBUS_IGNORED_MASK before the actual
|
||||
+ * commit because any characters can be control characters even if
|
||||
+ * they are not ASCII characters, e.g. game cursor keys with a
|
||||
+ * language keyboard layout likes VIM cursor mode "hjkl" keys.
|
||||
+ */
|
||||
ch = ibus_keyval_to_unicode (keyval);
|
||||
if (ch != 0 && !g_unichar_iscntrl (ch)) {
|
||||
IBusText *text = ibus_text_new_from_unichar (ch);
|
||||
diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
|
||||
index 31cb416c..4bee8cb3 100644
|
||||
--- a/src/ibusenginesimple.c
|
||||
+++ b/src/ibusenginesimple.c
|
||||
@@ -647,12 +647,17 @@ no_sequence_matches (IBusEngineSimple *simple,
|
||||
|
||||
ibus_engine_simple_update_preedit_text (simple);
|
||||
ch = ibus_keyval_to_unicode (keyval);
|
||||
- /* IBUS_CHANGE: RH#769133
|
||||
- * Since we use ibus xkb engines as the disable state,
|
||||
- * Super-space and space key can launch IBus Emojier.
|
||||
+ /* IBUS_CHANGE: RH#769133, #2588
|
||||
+ * Since we use ibus xkb engines as the disable IM mode,
|
||||
+ * do not commit the characters locally without in_hex_sequence.
|
||||
+ * If IBus tries to commit a character, it should be forwarded to
|
||||
+ * the application at once with IBUS_IGNORED_MASK before the actual
|
||||
+ * commit because any characters can be control characters even if
|
||||
+ * they are not ASCII characters, e.g. game cursor keys with a
|
||||
+ * language keyboard layout likes VIM cursor mode "hjkl" keys.
|
||||
*/
|
||||
- if (ch != 0 && !g_unichar_iscntrl (ch) && ch > 0x7F) {
|
||||
- ibus_engine_simple_commit_char (simple, ch);
|
||||
+ if (ch != 0 && !g_unichar_iscntrl (ch) &&
|
||||
+ priv->in_hex_sequence) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
--
|
||||
2.43.0
|
||||
|
||||
|
@ -58,7 +58,7 @@
|
||||
|
||||
Name: ibus
|
||||
Version: 1.5.29~rc2
|
||||
Release: 5%{?dist}
|
||||
Release: 6%{?dist}
|
||||
Summary: Intelligent Input Bus for Linux OS
|
||||
License: LGPL-2.1-or-later
|
||||
URL: https://github.com/ibus/%name/wiki
|
||||
@ -581,6 +581,9 @@ dconf update || :
|
||||
%{_datadir}/installed-tests/ibus
|
||||
|
||||
%changelog
|
||||
* Thu Dec 21 2023 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.29~rc2-6
|
||||
- Fix game control keys with language layout
|
||||
|
||||
* Fri Dec 15 2023 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.29~rc2-5
|
||||
- Refactor object initialization
|
||||
- Fix some warnings
|
||||
|
Loading…
Reference in New Issue
Block a user