public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Takao Fujiwara <tfujiwar@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/ibus] autotool: Fix game control keys with language layout
Date: Sun, 31 May 2026 02:08:22 GMT	[thread overview]
Message-ID: <178019330292.1.14941646370484914235.rpms-ibus-27145fdaf3ce@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/ibus
Branch : autotool
Commit : 27145fdaf3cea6e76fdc70358653d6d4b44f61e1
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date   : 2023-12-21T09:34:20+09:00
Stats  : +75/-1 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/ibus/c/27145fdaf3cea6e76fdc70358653d6d4b44f61e1?branch=autotool

Log:
Fix game control keys with language layout

---
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index 95c0b02..c8e4a54 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -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
+

diff --git a/ibus.spec b/ibus.spec
index 90a3499..875f550 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -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

                 reply	other threads:[~2026-05-31  2:08 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178019330292.1.14941646370484914235.rpms-ibus-27145fdaf3ce@fedoraproject.org \
    --to=tfujiwar@redhat.com \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox