public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/ibus] autotool: Resolves #2290842 Fix Super-space in Wayland
@ 2026-05-31  2:08 Takao Fujiwara
  0 siblings, 0 replies; only message in thread
From: Takao Fujiwara @ 2026-05-31  2:08 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/ibus
            Branch : autotool
            Commit : 77787d99c6cc16e8dd0bd48cc63acc129bb09442
            Author : Takao Fujiwara <tfujiwar@redhat.com>
            Date   : 2024-06-08T12:14:57+09:00
            Stats  : +293/-1 in 2 file(s)
            URL    : https://src.fedoraproject.org/rpms/ibus/c/77787d99c6cc16e8dd0bd48cc63acc129bb09442?branch=autotool

            Log:
            Resolves #2290842 Fix Super-space in Wayland

- Fix compose sequences beyond U10000

---
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index 72ebe09..12f7e19 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -745,6 +745,72 @@ index d907458e..534a9d37 100644
 -- 
 2.45.0
 
+From aea035a96261f9c3a36f5cd9c30b84b1d7609103 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Sat, 8 Jun 2024 10:23:31 +0900
+Subject: [PATCH] ui/gtk3: Fix Super-space in Wayland
+
+ibus_bus_set_global_shortcut_keys_async() was not called in Plasma
+Wayland after "Fix to unref GdkDisplay in Wayland" patch is applied.
+Now it's called correctly and the event handler is disabled instead.
+
+BUG=rhbz#2290842
+BUG=https://github.com/ibus/ibus/issues/2644
+Fixes: https://github.com/ibus/ibus/commit/627e7cc
+---
+ ui/gtk3/keybindingmanager.vala | 9 +++++----
+ ui/gtk3/panel.vala             | 5 ++---
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/ui/gtk3/keybindingmanager.vala b/ui/gtk3/keybindingmanager.vala
+index 71b4acb2..d4c7636a 100644
+--- a/ui/gtk3/keybindingmanager.vala
++++ b/ui/gtk3/keybindingmanager.vala
+@@ -60,8 +60,9 @@ public class KeybindingManager : GLib.Object {
+     public delegate void KeybindingHandlerFunc(Gdk.Event event);
+ 
+ 
+-    private  KeybindingManager() {
+-        Gdk.Event.handler_set(event_handler);
++    private  KeybindingManager(bool is_wayland_im) {
++        if (!is_wayland_im)
++            Gdk.Event.handler_set(event_handler);
+     }
+ 
+     /**
+@@ -107,9 +108,9 @@ public class KeybindingManager : GLib.Object {
+             m_bindings.remove (binding);
+     }
+ 
+-    public static KeybindingManager get_instance () {
++    public static KeybindingManager get_instance (bool is_wayland_im=false) {
+         if (m_instance == null)
+-            m_instance = new KeybindingManager ();
++            m_instance = new KeybindingManager (is_wayland_im);
+         return m_instance;
+     }
+ 
+diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
+index 534a9d37..b24c23ac 100644
+--- a/ui/gtk3/panel.vala
++++ b/ui/gtk3/panel.vala
+@@ -446,11 +446,10 @@ class Panel : IBus.PanelService {
+     }
+ 
+     private void bind_switch_shortcut() {
+-        if (m_is_wayland_im)
+-            return;
+         string[] accelerators = m_settings_hotkey.get_strv("triggers");
+ 
+-        var keybinding_manager = KeybindingManager.get_instance();
++        var keybinding_manager =
++                KeybindingManager.get_instance(m_is_wayland_im);
+ 
+         BindingCommon.KeyEventFuncType ftype =
+                 BindingCommon.KeyEventFuncType.IME_SWITCHER;
+-- 
+2.45.0
+
 From be94b8ddb4c37fe83646860a08c600b98e67fe84 Mon Sep 17 00:00:00 2001
 From: fujiwarat <takao.fujiwara1@gmail.com>
 Date: Sat, 25 May 2024 18:10:36 +0900
@@ -1296,3 +1362,225 @@ index a5210004..fd1d15f7 100644
 -- 
 2.45.0
 
+From 8d314d749f5ab83eb6de189faba184108fbccd61 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Sat, 8 Jun 2024 11:46:57 +0900
+Subject: [PATCH 1/2] src/ibuscomposetable: Fix UFDD5 key for compose seq with fr(bepo_afnor)
+
+AltGr-t with fr(bepo_afnor) keymap has no keysym name but can be
+used in the compose key sequences.
+Most Unicode format (UXXXX) should be supported in the compose sequences
+in case they are not used in XKB options except for 'Pointer_*' XKB option
+names.
+Also refactor compose sequences with each range beyond U10000.
+Also update ibus_keyval_name() can output keysym names beyond U10000.
+
+BUG=https://github.com/ibus/ibus/issues/2646
+Fixes: https://github.com/ibus/ibus/commit/ad883dc
+---
+ src/ibuscomposetable.c        | 35 +++++++++++++++++++++++++++++------
+ src/ibusenginesimpleprivate.h |  1 +
+ src/ibuskeynames.c            |  7 +------
+ src/tests/ibus-compose.basic  | 10 ++++++++++
+ 4 files changed, 41 insertions(+), 12 deletions(-)
+
+diff --git a/src/ibuscomposetable.c b/src/ibuscomposetable.c
+index 9d4377a9..2c97fd3b 100644
+--- a/src/ibuscomposetable.c
++++ b/src/ibuscomposetable.c
+@@ -1,7 +1,7 @@
+ /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+ /* ibus - The Input Bus
+  * Copyright (C) 2013-2014 Peng Huang <shawn.p.huang@gmail.com>
+- * Copyright (C) 2013-2023 Takao Fujiwara <takao.fujiwara1@gmail.com>
++ * Copyright (C) 2013-2024 Takao Fujiwara <takao.fujiwara1@gmail.com>
+  *
+  * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+@@ -222,6 +222,12 @@ parse_compose_sequence (IBusComposeData *compose_data,
+             compose_data->sequence[n] = codepoint;
+         }
+ 
++        if (codepoint >= 0x10000) {
++            if (!ibus_compose_key_flag (0xffff & codepoint)) {
++                g_warning ("The keysym %s > 0xffff is not supported: %s",
++                           match, line);
++            }
++        }
+         if (codepoint == IBUS_KEY_VoidSymbol) {
+             g_warning ("Could not get code point of keysym %s: %s",
+                        match, line);
+@@ -603,6 +609,7 @@ ibus_compose_list_check_duplicated (GList  *compose_list,
+ 
+ /*
+  * Actual typed keysyms have a flag against the definition.
++ * https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/blob/master/include/X11/keysymdef.h?ref_type=heads#L82
+  * https://gitlab.freedesktop.org/xorg/lib/libx11/-/blob/master/nls/en_US.UTF-8/Compose.pre#L4559
+  */
+ guint
+@@ -611,11 +618,27 @@ ibus_compose_key_flag (guint key)
+     const char *name;
+     if (key <= 0xff)
+         return 0;
++    switch (key) {
++    /* <Aogonek> is not used in UTF-8 compose sequences but <ohorn> in EN
++     * compose file and vn keymap is assumed instead.
++     */
++    case 0x1a1:
++    /* <Zabovedot> is not used in UTF-8 compose sequences but <Uhorn> in EN
++     * compose file and vn keymap s assumed instead.
++     */
++    case 0x1af:
++    /* <caron> is not used in UTF-8 compose sequences but <EZH> in EN compose
++     * file and fr(nodeadkeys) keymap is assumed instead.
++     */
++    case 0x1b7:
++        return 0x1000000;
++    default:;
++    }
+     name = ibus_keyval_name (key);
+     /* If name is null, the key sequence is expressed as "<Uxxxx>" format in
+      * the Compose file and the typed keysym has the flag.
+      */
+-    if (!name)
++    if (!name || g_str_has_prefix (name, "0x"))
+         return 0x1000000;
+     /* "<Pointer_EnableKeys>" is not described in the Compose file but <UFEF9>
+      * in the file.
+@@ -648,8 +671,8 @@ ibus_compose_data_compare (gpointer a,
+         gunichar code_a = compose_data_a->sequence[i];
+         gunichar code_b = compose_data_b->sequence[i];
+ 
+-        code_a += ibus_compose_key_flag (code_a);
+-        code_b += ibus_compose_key_flag (code_b);
++        code_a &= 0xffff;
++        code_b &= 0xffff;
+         if (code_a != code_b)
+             return code_a - code_b;
+         if (code_a == 0 && code_b == 0)
+@@ -1581,9 +1604,9 @@ compare_seq (const void *key, const void *value)
+         guint saved_key = (guint)seq[i];
+         guint flag = ibus_compose_key_flag (saved_key);
+         if (typed_key < (saved_key + flag))
+-            return -1;
++            return (0xffff & typed_key) - saved_key;
+         else if (typed_key > (saved_key + flag))
+-            return 1;
++            return (0xffff & typed_key) - saved_key;
+ 
+         i++;
+     }
+diff --git a/src/ibusenginesimpleprivate.h b/src/ibusenginesimpleprivate.h
+index fd600853..ae42342b 100644
+--- a/src/ibusenginesimpleprivate.h
++++ b/src/ibusenginesimpleprivate.h
+@@ -42,6 +42,7 @@ struct _IBusComposeTablePrivate
+ };
+ 
+ 
++guint    ibus_compose_key_flag      (guint                       key);
+ gboolean ibus_check_algorithmically (const guint                *compose_buffer,
+                                      int                         n_compose,
+                                      gunichar                   *output);
+diff --git a/src/ibuskeynames.c b/src/ibuskeynames.c
+index 544c6ade..2925bdec 100644
+--- a/src/ibuskeynames.c
++++ b/src/ibuskeynames.c
+@@ -47,12 +47,7 @@ ibus_keyval_name (guint keyval)
+   static gchar buf[100];
+   gdk_key *found;
+ 
+-  /* Check for directly encoded 24-bit UCS characters: */
+-  if ((keyval & 0xff000000) == 0x01000000)
+-    {
+-      g_sprintf (buf, "U+%.04X", (keyval & 0x00ffffff));
+-      return buf;
+-    }
++  /* <ohorn> with 0x01000000 is supported in gdk_keys_by_keyval */
+ 
+   found = bsearch (&keyval, gdk_keys_by_keyval,
+                    IBUS_NUM_KEYS, sizeof (gdk_key),
+diff --git a/src/tests/ibus-compose.basic b/src/tests/ibus-compose.basic
+index 0735d4ea..4e8cb9ab 100644
+--- a/src/tests/ibus-compose.basic
++++ b/src/tests/ibus-compose.basic
+@@ -8,6 +8,13 @@
+ <dead_macron> <U0227>                           : "ǟ"   U01DE
+ <Multi_key> <macron> <U0227>                    : "ǟ"   U01DE
+ <Multi_key> <underscore> <U0227>                : "ǟ"   U01DE
++# AltGr-t, Shift-asterisk with fr(bepo_afnor) keymap outputs
++# <UFDD5> <0>
++# Support Unicode keysyms in case they are not used in XKB options except
++# for 'Pointer_*' XKB option names.
++<UFDD5> <0> : "⁰" U2070
++#
++### Multibyte chars tests
+ # Khmer digraphs
+ # This case swaps U17fe and U17ff in en-US
+ <U17fe> : "ាំ"
+@@ -22,3 +29,6 @@
+ # This case swaps c_h and C_h in en-US
+ <c_h>   : "C’h"
+ <C_h>   : "c’h"
++# Some <U10000> are supported for musical composer in en-US
++<Multi_key> <U1D157> <U1D165>     : "𝇒"   U1D1D2 # MUSICAL SYMBOL SQUARE B
++
+-- 
+2.45.0
+
+From 909dff4fd50d86492fb7f42a09bbd04625fa60f4 Mon Sep 17 00:00:00 2001
+From: Wismill <dev@wismill.eu>
+Date: Sat, 8 Jun 2024 11:47:01 +0900
+Subject: [PATCH 2/2] src/tests/ibus-compose: Add some Unicode boundary tests
+
+BUG=https://github.com/ibus/ibus/pull/2649
+---
+ src/tests/ibus-compose.basic | 8 +++++++-
+ src/tests/ibus-compose.emoji | 4 ++++
+ 2 files changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/src/tests/ibus-compose.basic b/src/tests/ibus-compose.basic
+index 4e8cb9ab..d904dbb4 100644
+--- a/src/tests/ibus-compose.basic
++++ b/src/tests/ibus-compose.basic
+@@ -3,7 +3,9 @@
+ <Multi_key> <quotedbl> <Cyrillic_zhe>   : "Ӝ"   U04DC
+ <Multi_key> <quotedbl> <Cyrillic_ZHE>   : "ӝ"   U04DD
+ #
+-# Unicode tests of Uxxxx
++# A Unicode keysym <Uxxxx> has a real value 0x01000000 + xxxx.
++# https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/blob/master/include/X11/keysymdef.h?ref_type=heads#L82
++#
+ # en-US is "ǡ" U01E1 but this case is "ǟ" U01DE
+ <dead_macron> <U0227>                           : "ǟ"   U01DE
+ <Multi_key> <macron> <U0227>                    : "ǟ"   U01DE
+@@ -13,6 +15,10 @@
+ # Support Unicode keysyms in case they are not used in XKB options except
+ # for 'Pointer_*' XKB option names.
+ <UFDD5> <0> : "⁰" U2070
++# ohorn, grave with vn keymap
++# IBus does not distingish ohorn and Aogonek
++<ohorn> <grave> : "Ờ" U1EDC
++<U01A1> <grave> : "Ờ" U1EDC
+ #
+ ### Multibyte chars tests
+ # Khmer digraphs
+diff --git a/src/tests/ibus-compose.emoji b/src/tests/ibus-compose.emoji
+index 7fbf82cf..fdd560f8 100644
+--- a/src/tests/ibus-compose.emoji
++++ b/src/tests/ibus-compose.emoji
+@@ -1,3 +1,4 @@
++# Emoji tests
+ <Multi_key> <Multi_key> <l> <e> <o>             : "♌"  U264C   # LEO
+ <Multi_key> <Multi_key> <v> <i> <r> <g> <o>     : "♍"  U264D   # VIRGO
+ <Multi_key> <Multi_key> <I> <n> <t>             : "∫"
+@@ -9,3 +10,6 @@
+ <Multi_key> <Multi_key> <o> <I> <n> <t>         : "∮"
+ <Multi_key> <Multi_key> <o> <I> <I> <n> <t>     : "∯"
+ <Multi_key> <Multi_key> <o> <I> <I> <I> <n> <t> : "∰"
++# Unicode boundary tests
++<U2800> <0> : "a"
++<braille_blank> <0> : "a"
+-- 
+2.45.0
+

diff --git a/ibus.spec b/ibus.spec
index 4eb37a9..92e685d 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -61,7 +61,7 @@
 Name:           ibus
 Version:        1.5.30
 # https://github.com/fedora-infra/rpmautospec/issues/101
-Release:        4%{?dist}
+Release:        5%{?dist}
 Summary:        Intelligent Input Bus for Linux OS
 License:        LGPL-2.1-or-later
 URL:            https://github.com/ibus/%name/wiki
@@ -625,6 +625,10 @@ dconf update || :
 %{_datadir}/installed-tests/ibus
 
 %changelog
+* Sat Jun 08 2024 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.30-5
+- Resolves #2290842 Fix Super-space in Wayland
+- Fix compose sequences beyond U10000
+
 * Fri Jun 07 2024 Python Maint <python-maint@redhat.com> - 1.5.30-4
 - Rebuilt for Python 3.13
 

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-05-31  2:08 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-31  2:08 [rpms/ibus] autotool: Resolves #2290842 Fix Super-space in Wayland Takao Fujiwara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox