Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:favogt:symbolictw
ibus
ibus-enginesimple-dont-commit-any-characters.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ibus-enginesimple-dont-commit-any-characters.patch of Package ibus
From: fujiwarat <takao.fujiwara1@gmail.com> Date: Thu, 21 Dec 2023 08:26:48 +0900 Subject: src/ibusenginesimple.c: Don't commit any characters Git-commit: 4872c1fcdc8bbe146e967d004edf63f5994b21f8 Patch-mainline: yes References: boo#1218135 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(-) --- ibus-1.5.29-rc2.orig/client/gtk2/ibusimcontext.c +++ ibus-1.5.29-rc2/client/gtk2/ibusimcontext.c @@ -361,6 +361,12 @@ ibus_im_context_commit_event (IBusIMCont 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); --- ibus-1.5.29-rc2.orig/src/ibusenginesimple.c +++ ibus-1.5.29-rc2/src/ibusenginesimple.c @@ -647,12 +647,17 @@ no_sequence_matches (IBusEngineSimple *s 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;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor