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: Delete upstreamed patches
Date: Sun, 31 May 2026 02:08:33 GMT	[thread overview]
Message-ID: <178019331366.1.2971321519310882893.rpms-ibus-a9da27f5f0f7@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/ibus
Branch : autotool
Commit : a9da27f5f0f7ad429e337ac81b0f79a3d4c1b050
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date   : 2024-07-12T23:06:27+09:00
Stats  : +0/-1590 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/ibus/c/a9da27f5f0f7ad429e337ac81b0f79a3d4c1b050?branch=autotool

Log:
Delete upstreamed patches

---
diff --git a/ibus-1.5.30.tar.gz.sum b/ibus-1.5.30.tar.gz.sum
deleted file mode 100644
index 7aa32da..0000000
--- a/ibus-1.5.30.tar.gz.sum
+++ /dev/null
@@ -1,4 +0,0 @@
-cksum 4283112382 4124084 ibus-1.5.30.tar.gz
-sha1sum cda03c8622d5817e1a968b38bd05240e2102928d ibus-1.5.30.tar.gz
-sha256sum 05b84d4a45139face161596e5ade8e6c5da55cfaf6f194861da66516190f5b96 ibus-1.5.30.tar.gz
-sha512sum cbed37bf62e8d8593c838f8ef7fe0b22bf8f4a661b887fc7be2f2768dda912075abdf3070c22b9699def90e7002aaaf7394f5fc590e12ef6ebb2bb5161cc29a0 ibus-1.5.30.tar.gz

diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
deleted file mode 100644
index 12f7e19..0000000
--- a/ibus-HEAD.patch
+++ /dev/null
@@ -1,1586 +0,0 @@
-From 4059b9f43f4505c855677abde1b59fc13241ca58 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Tue, 2 Apr 2024 23:34:07 +0900
-Subject: [PATCH 1/6] Makefile: Add check sum file
-
----
- Makefile.am | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/Makefile.am b/Makefile.am
-index 16548d25..88fdbd48 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -138,6 +138,14 @@ srpm: dist @PACKAGE_NAME@.spec
- 			--define "_specdir `pwd`/rpm" \
- 			@PACKAGE_NAME@.spec
- 
-+@PACKAGE_NAME@-@PACKAGE_VERSION@.%.sum: @PACKAGE_NAME@-@PACKAGE_VERSION@.%
-+	f=`basename $@ .sum`; \
-+	printf "cksum %s %s %s\n"      `cksum $$f`     >  $@; \
-+	printf "sha1sum %s %s\n"       `sha1sum $$f`   >> $@; \
-+	printf "sha256sum %s %s\n"     `sha256sum $$f` >> $@; \
-+	printf "sha512sum %s %s\n"     `sha512sum $$f` >> $@; \
-+	$(NULL)
-+
- clean-rpm:
- 	-$(RM) -r "`uname -i`"
- 
--- 
-2.45.0
-
-From e39345af20c1dd9b18cdb6ccb5039b03e4135f73 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Fri, 24 May 2024 13:18:42 +0900
-Subject: [PATCH 2/6] src/tests: Fix ibus-daemon in ibus-desktop-testing-runner
-
-Some distributions do not need the IBus panel and gnome-shell also
-does not need it.
-Add --verbose option to get ibus-daemon error messages.
-
-Add vala check in autogen.sh since valac changes the source codes.
----
- autogen.sh                               |  2 +-
- src/tests/ibus-desktop-testing-runner.in | 17 ++++++++++++++---
- 2 files changed, 15 insertions(+), 4 deletions(-)
-
-diff --git a/autogen.sh b/autogen.sh
-index d6f8f983..90e126ec 100755
---- a/autogen.sh
-+++ b/autogen.sh
-@@ -14,7 +14,7 @@ GCC_VERSION=$(gcc --version | head -1 | awk '{print $3}')
- GCC_MAJOR_VERSION=$(echo "$GCC_VERSION" | awk -F. '{print $1}')
- FEDORA_PKG1='autoconf automake libtool gettext-devel'
- FEDORA_PKG2='glib2-devel gtk2-devel gtk3-devel
-- wayland-devel'
-+ wayland-devel vala'
- FEDORA_PKG3='cldr-emoji-annotation iso-codes-devel unicode-emoji unicode-ucd
-  xkeyboard-config-devel'
- 
-diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
-index 6b208345..1ac2dfc8 100755
---- a/src/tests/ibus-desktop-testing-runner.in
-+++ b/src/tests/ibus-desktop-testing-runner.in
-@@ -45,6 +45,7 @@ TEST_LOG_STDOUT=0
- RESULT_LOG=""
- SCREEN_LOG=""
- HAVE_GRAPHICS=1
-+VERBOSE=0
- DESKTOP_COMMAND="dbus-launch --exit-with-session gnome-session"
- PID_XORG=0
- PID_GNOME_SESSION=0
-@@ -83,6 +84,7 @@ usage()
- "-b, --builddir=BUILDDIR          Set the BUILDDIR\n"                          \
- "-s, --srcdir=SOURCEDIR           Set the SOURCEDIR\n"                         \
- "-c, --no-graphics                Use Xvfb instead of Xorg\n"                  \
-+"-V, --verbose                    Verbose log for ibus-daemon\n"               \
- "-d, --desktop=DESKTOP            Run DESTKTOP. The default is gnome-session.\n" \
- "                                 Suffix '-with-dbus' can run DESKTOP with dbus session." \
- "                                 E.g. --desktop=mutter-with-dbus"             \
-@@ -101,8 +103,8 @@ usage()
- parse_args()
- {
-     # This is GNU getopt. "sudo port getopt" in BSD?
--    ARGS=`getopt -o hvb:s:cd:t:r:T:o:O:S: --long \
--          help,version,builddir:,srcdir:,no-graphics,desktop:,tests:,runner:,timeout:,output:,result:,screendump:\
-+    ARGS=`getopt -o hvb:s:cVd:t:r:T:o:O:S: --long \
-+          help,version,builddir:,srcdir:,no-graphics,verbose,desktop:,tests:,runner:,timeout:,output:,result:,screendump:\
-         -- "$@"`;
-     eval set -- "$ARGS"
-     while [ 1 ] ; do
-@@ -112,6 +114,7 @@ parse_args()
-         -b | --builddir )    BUILDDIR="$2"; shift 2;;
-         -s | --srcdir )      SRCDIR="$2"; shift 2;;
-         -c | --no-graphics ) HAVE_GRAPHICS=0; shift;;
-+        -V | --verbose )     VERBOSE=1; shift;;
-         -d | --desktop )     DESKTOP_COMMAND="$2"; shift 2;;
-         -t | --tests )       TESTS="$2"; shift 2;;
-         -r | --runner )      TESTING_RUNNER="$2"; shift 2;;
-@@ -286,6 +289,7 @@ run_desktop()
-     PID_GNOME_SESSION=$!
-     sleep 30
- 
-+    IBUS_ARGS="--verbose --panel disable"
-     # gnome-shell 42 checks if org.freedesktop.IBus.session.GNOME.service
-     # systemd file is available with org.freedesktop.systemd1.Manager.GetUnit
-     # D-Bus method, which is provided by IBus 1.5.26, and if the file
-@@ -302,8 +306,15 @@ run_desktop()
-     # with gnome-session.target systemd file.
-     # But `systemctl start gdm` terminates the parent script forcibly
-     # and the script cannot get the CI result.
--    ibus-daemon --daemonize --verbose
-+    if test $VERBOSE -eq 1 ; then
-+        ibus-daemon $IBUS_ARGS &
-+    else
-+        ibus-daemon $IBUS_ARGS --daemonize
-+    fi
-     sleep 3
-+    if test $VERBOSE -eq 1 ; then
-+        ps -ef | grep ibus
-+    fi
- }
- 
- 
--- 
-2.45.0
-
-From f190da19b53c267ca1c9730e18f1b53c089c0247 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Fri, 24 May 2024 15:37:00 +0900
-Subject: [PATCH 3/6] ui/gtk3: Configure initial keymaps with localectl in
- Wayland
-
-`setxkbmap -query` returns US layout with Xwayland and it does not
-correspond to the session keymaps so ibus-panel now uses
-`localectl status` in Wayland but it does not provide the session
-XKB options against `setxkbmap` command in Xorg.
-Need to think how to load or set the XKB options in Wayland later.
-
-BUG=rhbz#2267615
-BUG=https://github.com/ibus/ibus/pull/2624
----
- src/tests/ibus-keypress.c |  40 +++++++++----
- ui/gtk3/panel.vala        |   2 +-
- ui/gtk3/xkblayout.vala    | 123 ++++++++++++++++++++++++++++----------
- 3 files changed, 119 insertions(+), 46 deletions(-)
-
-diff --git a/src/tests/ibus-keypress.c b/src/tests/ibus-keypress.c
-index bab05398..d44f39b2 100644
---- a/src/tests/ibus-keypress.c
-+++ b/src/tests/ibus-keypress.c
-@@ -5,6 +5,14 @@
- #include <X11/Xlib.h>
- #include <X11/extensions/XTest.h>
- 
-+#ifdef GDK_WINDOWING_WAYLAND
-+#if GTK_CHECK_VERSION (3, 98, 4)
-+#include <gdk/wayland/gdkwayland.h>
-+#else
-+#include <gdk/gdkwayland.h>
-+#endif
-+#endif
-+
- #define GREEN "\033[0;32m"
- #define RED   "\033[0;31m"
- #define NC    "\033[0m"
-@@ -186,15 +194,8 @@ set_engine_cb (GObject      *object,
-     }
- 
-     display = gtk_widget_get_display (entry);
--    if (GDK_IS_X11_DISPLAY (display)) {
--        xdisplay = gdk_x11_display_get_xdisplay (display);
--    } else {
--#if 0
--        xdisplay = XOpenDisplay (NULL);
--#else
--        g_critical ("No idea to simulate key events in Wayland\n");
--#endif
--    }
-+    g_assert (GDK_IS_X11_DISPLAY (display));
-+    xdisplay = gdk_x11_display_get_xdisplay (display);
-     g_return_if_fail (xdisplay);
- 
-     for (i = 0; test_cases[i][0].keyval; i++) {
-@@ -272,12 +273,18 @@ create_window ()
- static void
- test_keypress (void)
- {
-+    gchar *path;
-     int status = 0;
-     GError *error = NULL;
- 
--    g_spawn_command_line_sync ("setxkbmap -layout us",
--                               NULL, NULL,
--                               &status, &error);
-+    /* localectl does not change the session keymap. */
-+    path = g_find_program_in_path ("setxkbmap");
-+    if (path) {
-+        g_spawn_command_line_sync ("setxkbmap -layout us",
-+                                   NULL, NULL,
-+                                   &status, &error);
-+    }
-+    g_free (path);
-     g_assert (register_ibus_engine ());
- 
-     create_window ();
-@@ -295,6 +302,15 @@ main (int argc, char *argv[])
-         g_message ("Failed setenv NO_AT_BRIDGE\n");
-     g_test_init (&argc, &argv, NULL);
-     gtk_init (&argc, &argv);
-+#ifdef GDK_WINDOWING_WAYLAND
-+    {
-+        GdkDisplay *display = gdk_display_get_default ();
-+        if (GDK_IS_WAYLAND_DISPLAY (display)) {
-+            g_print ("setxkbmap and XTEST do not work in Wayland.\n");
-+            return 0;
-+        }
-+    }
-+#endif
- 
-     g_test_add_func ("/ibus/keyrepss", test_keypress);
- 
-diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
-index 678b51f0..d907458e 100644
---- a/ui/gtk3/panel.vala
-+++ b/ui/gtk3/panel.vala
-@@ -510,7 +510,7 @@ class Panel : IBus.PanelService {
-         string layouts;
-         string variants;
-         string option;
--        XKBLayout.get_layout(out layouts, out variants, out option);
-+        m_xkblayout.get_layout(out layouts, out variants, out option);
- 
-         GLib.List<IBus.EngineDesc> xkb_engines =
-                 new GLib.List<IBus.EngineDesc>();
-diff --git a/ui/gtk3/xkblayout.vala b/ui/gtk3/xkblayout.vala
-index 729b48ce..7812c4bb 100644
---- a/ui/gtk3/xkblayout.vala
-+++ b/ui/gtk3/xkblayout.vala
-@@ -4,7 +4,7 @@
-  *
-  * Copyright(c) 2014 Red Hat, Inc.
-  * Copyright(c) 2014 Peng Huang <shawn.p.huang@gmail.com>
-- * Copyright(c) 2014 Takao Fujiwara <tfujiwar@redhat.com>
-+ * Copyright(c) 2014-2024 Takao Fujiwara <tfujiwar@redhat.com>
-  *
-  * This library is free software; you can redistribute it and/or
-  * modify it under the terms of the GNU Lesser General Public
-@@ -25,11 +25,11 @@
- class XKBLayout
- {
-     private const string XKB_COMMAND = "setxkbmap";
--    private const string XKB_QUERY_ARG = "-query";
-     private const string XKB_LAYOUT_ARG = "-layout";
-     private const string XMODMAP_COMMAND = "xmodmap";
-     private const string[] XMODMAP_KNOWN_FILES = {".xmodmap", ".xmodmaprc",
-                                                   ".Xmodmap", ".Xmodmaprc"};
-+    private string[] m_get_layout_args = {};
-     private string[] m_xkb_latin_layouts = {};
-     private string m_default_layout = "";
-     private string m_default_variant = "";
-@@ -39,16 +39,23 @@ class XKBLayout
-     public XKBLayout() {
-     }
- 
-+
-     public void set_latin_layouts(string[] xkb_latin_layouts) {
-         m_xkb_latin_layouts = xkb_latin_layouts;
-     }
- 
--    public static void get_layout(out string layout,
--                                  out string variant,
--                                  out string option) {
-+
-+    public void get_layout(out string layout,
-+                           out string variant,
-+                           out string option) {
-+        search_get_layout_program();
-+        if (m_get_layout_args[0] == null) {
-+            warning("Not found localectl or setxkbmap command in PATH");
-+            return;
-+        }
-         string[] exec_command = {};
--        exec_command += XKB_COMMAND;
--        exec_command += XKB_QUERY_ARG;
-+        foreach (unowned string arg in m_get_layout_args)
-+            exec_command += arg;
-         string standard_output = null;
-         string standard_error = null;
-         int exit_status = 0;
-@@ -69,46 +76,94 @@ class XKBLayout
-         } catch (GLib.SpawnError err) {
-             stderr.printf("IBUS_ERROR: %s\n", err.message);
-         }
--        if (exit_status != 0) {
-+        if (exit_status != 0)
-             stderr.printf("IBUS_ERROR: %s\n", standard_error ?? "");
--        }
--        if (standard_output == null) {
-+        if (standard_output == null)
-             return;
-+
-+        if (exec_command[0] == "localectl") {
-+            parse_localectl_status_str(standard_output,
-+                                       out layout,
-+                                       out variant,
-+                                       out option);
-+        } else if (exec_command[0] == XKB_COMMAND) {
-+            parse_xkbmap_query_str(standard_output,
-+                                   out layout,
-+                                   out variant,
-+                                   out option);
-         }
-+    }
-+
- 
-+    private void search_get_layout_program() {
-+        if (m_get_layout_args[0] != null)
-+            return;
-+        string get_layout_command = null;
-+        // setxkbmap can get the session XKB options in Xorg.
-+        if (BindingCommon.default_is_xdisplay())
-+            get_layout_command = "setxkbmap -query";
-+        else if (GLib.Environment.find_program_in_path("localectl") != null)
-+            get_layout_command = "localectl status";
-+        else if (GLib.Environment.find_program_in_path("setxkbmap") != null)
-+            get_layout_command = "setxkbmap -query";
-+        if (get_layout_command != null)
-+            m_get_layout_args = get_layout_command.split(" ");
-+    }
-+
-+
-+    private void parse_localectl_status_str(string standard_output,
-+                                            out string layout,
-+                                            out string variant,
-+                                            out string option) {
-+        layout = "";
-+        variant = "";
-+        option = "";
-         foreach (string line in standard_output.split("\n")) {
--            string element = "layout:";
--            string retval = "";
--            if (line.has_prefix(element)) {
--                retval = line[element.length:line.length];
--                if (retval != null) {
--                    retval = retval.strip();
-+            const string[] elements = { "X11 Layout:", "X11 Variant:" };
-+            foreach (unowned string element in elements) {
-+                string retval = "";
-+                int index = line.index_of(element);
-+                if (index >= 0) {
-+                    retval = line[index + element.length:line.length];
-+                    if (retval != null)
-+                        retval = retval.strip();
-+                    if (element == elements[0])
-+                        layout = retval;
-+                    else if (element == elements[1])
-+                        variant = retval;
-                 }
--                layout = retval;
-             }
-+        }
-+    }
- 
--            element = "variant:";
--            retval = "";
--            if (line.has_prefix(element)) {
--                retval = line[element.length:line.length];
--                if (retval != null) {
--                    retval = retval.strip();
--                }
--                variant = retval;
--            }
- 
--            element = "options:";
--            retval = "";
--            if (line.has_prefix(element)) {
--                retval = line[element.length:line.length];
--                if (retval != null) {
--                    retval = retval.strip();
-+    private void parse_xkbmap_query_str(string standard_output,
-+                                        out string layout,
-+                                        out string variant,
-+                                        out string option) {
-+        layout = "";
-+        variant = "";
-+        option = "";
-+        foreach (string line in standard_output.split("\n")) {
-+            const string[] elements = { "layout:", "variant:", "options:" };
-+            foreach (unowned string element in elements) {
-+                string retval = "";
-+                if (line.has_prefix(element)) {
-+                    retval = line[element.length:line.length];
-+                    if (retval != null)
-+                        retval = retval.strip();
-+                    if (element == elements[0])
-+                        layout = retval;
-+                    else if (element == elements[1])
-+                        variant = retval;
-+                    else if (element == elements[2])
-+                        option = retval;
-                 }
--                option = retval;
-             }
-         }
-     }
- 
-+
-     public void set_layout(IBus.EngineDesc engine) {
-         string layout = engine.get_layout();
-         string variant = engine.get_layout_variant();
-@@ -206,6 +261,7 @@ class XKBLayout
-         run_xmodmap();
-     }
- 
-+
-     public void run_xmodmap() {
-         if (!m_use_xmodmap) {
-             return;
-@@ -246,6 +302,7 @@ class XKBLayout
-         }
-     }
- 
-+
-     public void set_use_xmodmap(bool use_xmodmap) {
-         m_use_xmodmap = use_xmodmap;
-     }
--- 
-2.45.0
-
-From 48c4a9c900421b9e77be399a4792974f25a80be6 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Fri, 24 May 2024 16:17:58 +0900
-Subject: [PATCH 4/6] src/ibusenginesimple: Ignore Super modifier for compose
- keys
-
-Now IBus receives key events prior to the window manager and needs
-to ignore Super modifier since Super key has been already ignored
-for compose keys.
-
-BUG=https://gitlab.gnome.org/GNOME/mutter/-/issues/3128
----
- src/ibusenginesimple.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
-index 4bee8cb3..76dd9eb5 100644
---- a/src/ibusenginesimple.c
-+++ b/src/ibusenginesimple.c
-@@ -2,7 +2,7 @@
- /* vim:set et sts=4: */
- /* ibus - The Input Bus
-  * Copyright (C) 2014 Peng Huang <shawn.p.huang@gmail.com>
-- * Copyright (C) 2015-2023 Takao Fujiwara <takao.fujiwara1@gmail.com>
-+ * Copyright (C) 2015-2024 Takao Fujiwara <takao.fujiwara1@gmail.com>
-  * Copyright (C) 2014-2017 Red Hat, Inc.
-  *
-  * This library is free software; you can redistribute it and/or
-@@ -1017,7 +1017,9 @@ ibus_engine_simple_process_key_event (IBusEngine *engine,
-          !is_hex_start && !is_hex_end && !is_escape && !is_backspace) ||
-         (priv->in_emoji_sequence && !printable_keyval &&
-          !is_emoji_start && !is_hex_end && !is_escape && !is_backspace)) {
--        if (modifiers & (IBUS_MOD1_MASK | IBUS_CONTROL_MASK) ||
-+        guint no_text_input_mask = IBUS_MOD1_MASK | IBUS_MOD4_MASK \
-+                                   | IBUS_CONTROL_MASK | IBUS_SUPER_MASK;
-+        if (modifiers & no_text_input_mask ||
-             ((priv->in_hex_sequence || priv->in_emoji_sequence) &&
-              priv->modifiers_dropped &&
-              (keyval == IBUS_KEY_Return ||
--- 
-2.45.0
-
-From a3a5a20a30f2a8ecee4dc2aaa4fd48c62c91d768 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Fri, 24 May 2024 16:18:03 +0900
-Subject: [PATCH 5/6] src/ibusenginesimple: Do not update zero length preedit
- text
-
-Several engines can inherit IBusEngieSimple for the compose key support
-likes Anthy, Hangul, M17n and it could have the duplicated preedit text
-between the engine and the parent IBusEngineSimple and it could update
-the preedit text mutually by mistake.
-
-Then the preedit text should not be hidden for zero length at least.
-This update might not be enough but hope to fix the cursor position
-reset with hiding the preedit text against the reported issue with
-`m17n:sa:itrans` engine.
-
-BUG=https://github.com/ibus/ibus/issues/2536
----
- src/ibusenginesimple.c | 41 +++++++++++++++++++++++++++++++++++------
- 1 file changed, 35 insertions(+), 6 deletions(-)
-
-diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
-index 76dd9eb5..ac478855 100644
---- a/src/ibusenginesimple.c
-+++ b/src/ibusenginesimple.c
-@@ -83,11 +83,13 @@ struct _IBusEngineSimplePrivate {
-     IBusEngineDict     *emoji_dict;
-     IBusLookupTable    *lookup_table;
-     gboolean            lookup_table_visible;
-+    IBusText           *updated_preedit;
- };
- 
- guint COMPOSE_BUFFER_SIZE = 20;
- G_LOCK_DEFINE_STATIC (global_tables);
- static GSList *global_tables;
-+static IBusText *updated_preedit_empty;
- 
- /* functions prototype */
- static void     ibus_engine_simple_destroy      (IBusEngineSimple   *simple);
-@@ -135,24 +137,29 @@ ibus_engine_simple_class_init (IBusEngineSimpleClass *class)
-     engine_class->page_up   = ibus_engine_simple_page_up;
-     engine_class->candidate_clicked
-                             = ibus_engine_simple_candidate_clicked;
-+    updated_preedit_empty = ibus_text_new_from_string ("");
-+    g_object_ref_sink (updated_preedit_empty);
- }
- 
- static void
- ibus_engine_simple_init (IBusEngineSimple *simple)
- {
-+    IBusEngineSimplePrivate *priv;
-     GBytes *data;
-     GError *error = NULL;
-     const char *contents;
-     gsize length = 0;
-     IBusComposeTableEx *en_compose_table;
- 
--    simple->priv = IBUS_ENGINE_SIMPLE_GET_PRIVATE (simple);
--    simple->priv->compose_buffer = g_new0 (guint, COMPOSE_BUFFER_SIZE + 1);
--    simple->priv->hex_mode_enabled =
-+    priv = simple->priv = IBUS_ENGINE_SIMPLE_GET_PRIVATE (simple);
-+    priv->compose_buffer = g_new0 (guint, COMPOSE_BUFFER_SIZE + 1);
-+    priv->hex_mode_enabled =
-         g_getenv("IBUS_ENABLE_CTRL_SHIFT_U") != NULL ||
-         g_getenv("IBUS_ENABLE_CONTROL_SHIFT_U") != NULL;
--    simple->priv->tentative_match = g_string_new ("");
--    simple->priv->tentative_match_len = 0;
-+    priv->tentative_match = g_string_new ("");
-+    priv->tentative_match_len = 0;
-+    priv->updated_preedit =
-+            (IBusText *)g_object_ref_sink (updated_preedit_empty);
-     data = g_resources_lookup_data ("/org/freedesktop/ibus/compose/sequences",
-                                     G_RESOURCE_LOOKUP_FLAGS_NONE,
-                                     &error);
-@@ -190,6 +197,7 @@ ibus_engine_simple_destroy (IBusEngineSimple *simple)
-     g_string_free (priv->tentative_match, TRUE);
-     priv->tentative_match = NULL;
-     priv->tentative_match_len = 0;
-+    g_clear_object (&priv->updated_preedit);
- 
-     IBUS_OBJECT_CLASS(ibus_engine_simple_parent_class)->destroy (
-         IBUS_OBJECT (simple));
-@@ -228,6 +236,9 @@ ibus_engine_simple_reset (IBusEngine *engine)
-         priv->tentative_match_len = 0;
-     }
-     ibus_engine_hide_preedit_text ((IBusEngine *)simple);
-+    g_object_unref (priv->updated_preedit);
-+    priv->updated_preedit =
-+            (IBusText *)g_object_ref_sink (updated_preedit_empty);
- }
- 
- static void
-@@ -318,7 +329,10 @@ ibus_engine_simple_update_preedit_text (IBusEngineSimple *simple)
-         int len = strlen (priv->tentative_emoji);
-         ibus_text_append_attribute (text,
-                 IBUS_ATTR_TYPE_UNDERLINE, IBUS_ATTR_UNDERLINE_SINGLE, 0, len);
-+        g_object_ref_sink (text);
-         ibus_engine_update_preedit_text ((IBusEngine *)simple, text, len, TRUE);
-+        g_object_unref (priv->updated_preedit);
-+        priv->updated_preedit = text;
-         g_string_free (s, TRUE);
-         return;
-     } else if (priv->in_compose_sequence) {
-@@ -370,7 +384,19 @@ ibus_engine_simple_update_preedit_text (IBusEngineSimple *simple)
-     }
- 
-     if (s->len == 0) {
--        ibus_engine_hide_preedit_text ((IBusEngine *)simple);
-+        /* #2536 IBusEngine can inherit IBusEngineSimple for comopse keys.
-+         * If the previous preedit is zero, the current preedit does not 
-+         * need to be hidden here at least because ibus-daemon could have
-+         * another preedit for the child IBusEnigne likes m17n and caclling
-+         * ibus_engine_hide_preedit_text() here could cause a reset of
-+         * the cursor position in ibus-daemon.
-+         */
-+        if (strlen (priv->updated_preedit->text)) {
-+            ibus_engine_hide_preedit_text ((IBusEngine *)simple);
-+            g_object_unref (priv->updated_preedit);
-+            priv->updated_preedit =
-+                    (IBusText *)g_object_ref_sink (updated_preedit_empty);
-+        }
-     } else if (s->len >= G_MAXINT) {
-         g_warning ("%s is too long compose length: %lu", s->str, s->len);
-     } else {
-@@ -378,7 +404,10 @@ ibus_engine_simple_update_preedit_text (IBusEngineSimple *simple)
-         IBusText *text = ibus_text_new_from_string (s->str);
-         ibus_text_append_attribute (text,
-                 IBUS_ATTR_TYPE_UNDERLINE, IBUS_ATTR_UNDERLINE_SINGLE, 0, len);
-+        g_object_ref_sink (text);
-         ibus_engine_update_preedit_text ((IBusEngine *)simple, text, len, TRUE);
-+        g_object_unref (priv->updated_preedit);
-+        priv->updated_preedit = text;
-     }
-     g_string_free (s, TRUE);
- }
--- 
-2.45.0
-
-From 627e7cc37d3bea4c288c932773f69fcee9ac773e Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Fri, 24 May 2024 16:28:40 +0900
-Subject: [PATCH 6/6] ui/gtk3: Fix to unref GdkDisplay in Wayland
-
-Panel does not need to allocate the X11 display in Wayland but the check
-only. Vala codes need to set the unowned parameter.
-Also fixed a memory leak in the update preedit in daemon.
-
-BUG=rhbz#2252227
-BUG=https://github.com/ibus/ibus/issues/2642
-BUG=https://github.com/ibus/ibus/issues/2644
----
- bus/inputcontext.c         |   1 +
- ui/gtk3/application.vala   |   2 +
- ui/gtk3/bindingcommon.vala |   6 +-
- ui/gtk3/handle.vala        |   2 +
- ui/gtk3/panel.vala         |  18 ++++-
- 6 files changed, 96 insertions(+), 78 deletions(-)
-
-diff --git a/bus/inputcontext.c b/bus/inputcontext.c
-index c914fbd2..7666f057 100644
---- a/bus/inputcontext.c
-+++ b/bus/inputcontext.c
-@@ -3306,6 +3306,7 @@ bus_input_context_update_preedit_text (BusInputContext *context,
-             pre_data.key = 'm';
-         if (bus_input_context_make_post_process_key_event (context,
-                                                            &pre_data)) {
-+            g_variant_unref (variant);
-             return;
-         } else if (context->client_commit_preedit) {
-             bus_input_context_emit_signal (
-diff --git a/ui/gtk3/application.vala b/ui/gtk3/application.vala
-index ae67624f..31517c79 100644
---- a/ui/gtk3/application.vala
-+++ b/ui/gtk3/application.vala
-@@ -228,6 +228,8 @@ class Application {
-     }
- 
-     private static void make_wayland_im() {
-+        if (BindingCommon.default_is_xdisplay())
-+            return;
-         assert (open_log());
-         void *wl_display = null;
-         ulong i = 0;
-diff --git a/ui/gtk3/bindingcommon.vala b/ui/gtk3/bindingcommon.vala
-index e32db178..7e6443c5 100644
---- a/ui/gtk3/bindingcommon.vala
-+++ b/ui/gtk3/bindingcommon.vala
-@@ -259,11 +259,11 @@ class BindingCommon {
- 
-     public static bool default_is_xdisplay() {
-         if (m_xdisplay == null)
--            get_xdisplay();
-+            get_xdisplay(true);
-         return m_default_is_xdisplay;
-     }
- 
--    public static Gdk.X11.Display? get_xdisplay() {
-+    public static Gdk.X11.Display? get_xdisplay(bool check_only=false) {
-         if (m_xdisplay != null)
-             return m_xdisplay;
-         var display = Gdk.Display.get_default();
-@@ -277,6 +277,8 @@ class BindingCommon {
-             m_xdisplay = (Gdk.X11.Display)display;
-             return m_xdisplay;
-         }
-+        if (check_only)
-+            return null;
-         Gdk.set_allowed_backends("x11");
-         // Call _gdk_display_manager_add_display() internally.
-         m_xdisplay =
-diff --git a/ui/gtk3/handle.vala b/ui/gtk3/handle.vala
-index 65635439..1d0eefe9 100644
---- a/ui/gtk3/handle.vala
-+++ b/ui/gtk3/handle.vala
-@@ -62,6 +62,8 @@ class Handle : Gtk.EventBox {
-     }
- 
-     public override bool button_press_event(Gdk.EventButton event) {
-+        if (!BindingCommon.default_is_xdisplay())
-+            return false;
-         if (event.button != 1)
-             return false;
-         m_workarea = Gdk.Rectangle(){
-diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
-index d907458e..534a9d37 100644
---- a/ui/gtk3/panel.vala
-+++ b/ui/gtk3/panel.vala
-@@ -166,6 +166,9 @@ class Panel : IBus.PanelService {
-             property_activate(k, s);
-         });
- 
-+        set_version();
-+        check_wayland();
-+
-         state_changed();
-     }
- 
-@@ -443,6 +446,8 @@ 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();
-@@ -874,6 +879,16 @@ class Panel : IBus.PanelService {
-                 message = format.printf(Environment.get_prgname());
-             }
-         }
-+        if (!m_is_wayland && m_is_wayland_im) {
-+            var format =
-+                    _("Seems you run %s with '--enable-wayland-im' " +
-+                      "option but your display server is Xorg so the Wayland " +
-+                      "feature is disabled. You would be better off running " +
-+                      "ibus-daemon directly instead or %s without that " +
-+                      "option.");
-+            unowned string prgname = Environment.get_prgname();
-+            message = format.printf(prgname, prgname);
-+        }
-         if (message == null)
-             return;
- #if ENABLE_LIBNOTIFY
-@@ -908,9 +923,6 @@ class Panel : IBus.PanelService {
- 
- 
-     public void load_settings() {
--        set_version();
--        check_wayland();
--
-         init_engines_order();
- 
-         // Update m_use_system_keyboard_layout before update_engines()
--- 
-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
-Subject: [PATCH] src/ibusengine: Hide preedit text with PanelExtensionReceived
- signal
-
-IBusEngineSimple no longer calls to hide the preedit with the zero
-length to fix the slurring cursor position but the emoji preedit
-becomes not to be hidden with the preedit commit or escape events
-as a side effect.
-To fix the issue, IBusEngine needs to decide to clear or keep
-the preedit when the emoji mode is finished.
-
-BUG=https://github.com/ibus/ibus/issues/2536
-Fixes: https://github.com/ibus/ibus/commit/a3a5a20a
----
- src/ibusengine.c       | 11 +++++++++++
- src/ibusenginesimple.c |  2 +-
- 2 files changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/src/ibusengine.c b/src/ibusengine.c
-index eff4992c..0352fd49 100644
---- a/src/ibusengine.c
-+++ b/src/ibusengine.c
-@@ -1326,6 +1326,17 @@ ibus_engine_service_method_call (IBusService           *service,
-             return;
-         }
-         priv->enable_extension = ibus_extension_event_is_enabled (event);
-+        /* IBusEngineSimple no longer calls to hide the preedit with the zero
-+         * lenght and this sends the null preedit here when the emojier
-+         * commits or escapes the emoji preedit text.
-+         * TODO: Do we need a signal for the parent engines to inform this
-+         * information because some engines don't wish to hide their preedit
-+         * with hiding the emoji preedit?
-+         */
-+        if (!priv->enable_extension) {
-+            IBusText *text = ibus_text_new_from_static_string ("");
-+            ibus_engine_update_preedit_text (engine, text, 0, FALSE);
-+        }
-         g_dbus_method_invocation_return_value (invocation, NULL);
-         return;
-     }
-diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
-index ac478855..e2f96a37 100644
---- a/src/ibusenginesimple.c
-+++ b/src/ibusenginesimple.c
-@@ -385,7 +385,7 @@ ibus_engine_simple_update_preedit_text (IBusEngineSimple *simple)
- 
-     if (s->len == 0) {
-         /* #2536 IBusEngine can inherit IBusEngineSimple for comopse keys.
--         * If the previous preedit is zero, the current preedit does not 
-+         * If the previous preedit is zero, the current preedit does not
-          * need to be hidden here at least because ibus-daemon could have
-          * another preedit for the child IBusEnigne likes m17n and caclling
-          * ibus_engine_hide_preedit_text() here could cause a reset of
--- 
-2.45.0
-
-From 759105df1d83ae25d9eea801a7c91e67dca43cb8 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Sat, 25 May 2024 19:23:23 +0900
-Subject: [PATCH 1/6] bus: Change IBus unique name to :1.0 from IBUS_SERVICE_IBUS
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-According to the D-Bus specification,
-`org.freedesktop.DBus.GetNameOwner()` must return a unique name (i.e.
-one of the form `:1.23`). The only unique name which is allowed to not
-be in this form is `org.freedesktop.DBus`.
-
-The change in GLib 2.80.1 was to validate that the sender of every
-message is either a unique name (according to `g_dbus_is_unique_name()`),
-or the special name `org.freedesktop.DBus` to meet the specification.
-
-In the long term, it might be more robust to rework the code so that the
-mapping from `org.freedesktop.IBus` → a unique name is stored in
-`dbus->names` (in `dbusimpl.c`) like all the other requested names.
-However, handling for the `org.freedesktop.IBus` well-known name is
-hardcoded throughout `dbusimpl.c`, so porting this single bit of it to
-create a `BusNameService` would probably cause more problems.
-
-BUG=https://github.com/ibus/ibus/issues/2639
-BUG=https://gitlab.gnome.org/GNOME/glib/-/issues/3268
-BUG=https://github.com/advisories/GHSA-f632-c3rh-r2v2
----
- bus/connection.h   |  3 +++
- bus/dbusimpl.c     | 29 +++++++++++++++--------------
- bus/ibusimpl.c     | 13 +++++++------
- bus/inputcontext.c |  2 +-
- bus/matchrule.c    | 10 +++++++++-
- bus/matchrule.h    |  4 +++-
- 6 files changed, 38 insertions(+), 23 deletions(-)
-
-diff --git a/bus/connection.h b/bus/connection.h
-index 440faf1e..8264980e 100644
---- a/bus/connection.h
-+++ b/bus/connection.h
-@@ -42,6 +42,9 @@
- #define BUS_CONNECTION_GET_CLASS(obj)   \
-     (G_TYPE_INSTANCE_GET_CLASS ((obj), BUS_TYPE_CONNECTION, BusConnectionClass))
- 
-+/* bus_dbus_impl_hello() sets the client unique names ":1.1" or later. */
-+#define IBUS_NAME_OWNER_NAME ":1.0"
-+
- G_BEGIN_DECLS
- 
- typedef struct _BusConnection BusConnection;
-diff --git a/bus/dbusimpl.c b/bus/dbusimpl.c
-index 59787a80..52092e58 100644
---- a/bus/dbusimpl.c
-+++ b/bus/dbusimpl.c
-@@ -710,7 +710,8 @@ bus_dbus_impl_list_names (BusDBusImpl           *dbus,
- 
-     /* FIXME should add them? */
-     g_variant_builder_add (&builder, "s", "org.freedesktop.DBus");
--    g_variant_builder_add (&builder, "s", "org.freedesktop.IBus");
-+    g_variant_builder_add (&builder, "s", IBUS_SERVICE_IBUS);
-+    g_variant_builder_add (&builder, "s", IBUS_NAME_OWNER_NAME);
- 
-     /* append well-known names */
-     GList *names, *name;
-@@ -785,11 +786,11 @@ bus_dbus_impl_get_name_owner (BusDBusImpl           *dbus,
-     const gchar *name = NULL;
-     g_variant_get (parameters, "(&s)", &name);
- 
--    if (g_strcmp0 (name, "org.freedesktop.DBus") == 0 ||
--        g_strcmp0 (name, "org.freedesktop.IBus") == 0) {
-+    if (!g_strcmp0 (name, "org.freedesktop.DBus")) {
-         name_owner = name;
--    }
--    else {
-+    } else if (!g_strcmp0 (name, IBUS_SERVICE_IBUS)) {
-+        name_owner = IBUS_NAME_OWNER_NAME;
-+    } else {
-         BusConnection *owner = bus_dbus_impl_get_connection_by_name (dbus, name);
-         if (owner != NULL) {
-             name_owner = bus_connection_get_unique_name (owner);
-@@ -800,8 +801,7 @@ bus_dbus_impl_get_name_owner (BusDBusImpl           *dbus,
-         g_dbus_method_invocation_return_error (invocation,
-                         G_DBUS_ERROR, G_DBUS_ERROR_NAME_HAS_NO_OWNER,
-                         "Can not get name owner of '%s': no such name", name);
--    }
--    else {
-+    } else {
-         g_dbus_method_invocation_return_value (invocation,
-                         g_variant_new ("(s)", name_owner));
-     }
-@@ -932,6 +932,9 @@ bus_dbus_impl_add_match (BusDBusImpl           *dbus,
-                         "Parse match rule [%s] failed", rule_text);
-         return;
-     }
-+    /* ibus_bus_watch_ibus_signal() supports IBUS_SERVICE_IBUS sender. */
-+    if (!g_strcmp0 (bus_match_rule_get_sender (rule), IBUS_SERVICE_IBUS))
-+        bus_match_rule_set_sender (rule, IBUS_NAME_OWNER_NAME);
- 
-     g_dbus_method_invocation_return_value (invocation, NULL);
-     GList *p;
-@@ -1510,7 +1513,8 @@ bus_dbus_impl_connection_filter_cb (GDBusConnection *dbus_connection,
-         /* connection unique name as sender of the message*/
-         g_dbus_message_set_sender (message, bus_connection_get_unique_name (connection));
- 
--        if (g_strcmp0 (destination, "org.freedesktop.IBus") == 0) {
-+        if (!g_strcmp0 (destination, IBUS_SERVICE_IBUS) ||
-+            !g_strcmp0 (destination, IBUS_NAME_OWNER_NAME)) {
-             /* the message is sent to IBus service. messages from ibusbus and ibuscontext may fall into this category. */
-             switch (message_type) {
-             case G_DBUS_MESSAGE_TYPE_METHOD_CALL:
-@@ -1528,8 +1532,7 @@ bus_dbus_impl_connection_filter_cb (GDBusConnection *dbus_connection,
-                 g_object_unref (message);
-                 g_return_val_if_reached (NULL);  /* return NULL since the service does not handle signals. */
-             }
--        }
--        else if (g_strcmp0 (destination, "org.freedesktop.DBus") == 0) {
-+        } else if (!g_strcmp0 (destination, "org.freedesktop.DBus")) {
-             /* the message is sent to DBus service. messages from ibusbus may fall into this category. */
-             switch (message_type) {
-             case G_DBUS_MESSAGE_TYPE_METHOD_CALL:
-@@ -1547,8 +1550,7 @@ bus_dbus_impl_connection_filter_cb (GDBusConnection *dbus_connection,
-                 g_object_unref (message);
-                 g_return_val_if_reached (NULL);  /* return NULL since the service does not handle signals. */
-             }
--        }
--        else if (destination == NULL) {
-+        } else if (destination == NULL) {
-             /* the message is sent to the current connection. communications between ibus-daemon and panel/engines may fall into this
-              * category since the panel/engine proxies created by ibus-daemon does not set bus name. */
-             switch (message_type) {
-@@ -1570,8 +1572,7 @@ bus_dbus_impl_connection_filter_cb (GDBusConnection *dbus_connection,
-                 g_object_unref (message);
-                 g_return_val_if_reached (NULL);  /* return NULL since the service does not handle messages. */
-             }
--        }
--        else {
-+        } else {
-             /* The message is sent to an other service. Forward it.
-              * For example, the config proxy class in src/ibusconfig.c sets its "g-name" property (i.e. destination) to IBUS_SERVICE_CONFIG. */
-             bus_dbus_impl_forward_message (dbus, connection, message);
-diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
-index 875cd550..8681c78b 100644
---- a/bus/ibusimpl.c
-+++ b/bus/ibusimpl.c
-@@ -2388,19 +2388,20 @@ bus_ibus_impl_property_changed (BusIBusImpl *service,
-                                 GVariant    *value)
- {
-     GDBusMessage *message =
--        g_dbus_message_new_signal ("/org/freedesktop/IBus",
-+        g_dbus_message_new_signal (IBUS_PATH_IBUS,
-                                    "org.freedesktop.DBus.Properties",
-                                    "PropertiesChanged");
- 
-     /* set a non-zero serial to make libdbus happy */
-     g_dbus_message_set_serial (message, 1);
--    g_dbus_message_set_sender (message, "org.freedesktop.IBus");
-+    g_dbus_message_set_sender (message, IBUS_NAME_OWNER_NAME);
-+
- 
-     GVariantBuilder *builder = g_variant_builder_new (G_VARIANT_TYPE_ARRAY);
-     g_variant_builder_add (builder, "{sv}", property_name, value);
-     g_dbus_message_set_body (message,
-                              g_variant_new ("(sa{sv}as)",
--                                            "org.freedesktop.IBus",
-+                                            IBUS_SERVICE_IBUS,
-                                             builder,
-                                             NULL));
-     g_variant_builder_unref (builder);
-@@ -2419,12 +2420,12 @@ bus_ibus_impl_emit_signal (BusIBusImpl *ibus,
-                            const gchar *signal_name,
-                            GVariant    *parameters)
- {
--    GDBusMessage *message = g_dbus_message_new_signal ("/org/freedesktop/IBus",
--                                                       "org.freedesktop.IBus",
-+    GDBusMessage *message = g_dbus_message_new_signal (IBUS_PATH_IBUS,
-+                                                       IBUS_INTERFACE_IBUS,
-                                                        signal_name);
-     /* set a non-zero serial to make libdbus happy */
-     g_dbus_message_set_serial (message, 1);
--    g_dbus_message_set_sender (message, "org.freedesktop.IBus");
-+    g_dbus_message_set_sender (message, IBUS_NAME_OWNER_NAME);
-     if (parameters)
-         g_dbus_message_set_body (message, parameters);
-     bus_dbus_impl_dispatch_message_by_rule (BUS_DEFAULT_DBUS, message, NULL);
-diff --git a/bus/inputcontext.c b/bus/inputcontext.c
-index 7666f057..e0ad0742 100644
---- a/bus/inputcontext.c
-+++ b/bus/inputcontext.c
-@@ -755,7 +755,7 @@ bus_input_context_send_signal (BusInputContext *context,
-             ibus_service_get_object_path ((IBusService *)context),
-             interface_name,
-             signal_name);
--    g_dbus_message_set_sender (message, "org.freedesktop.IBus");
-+    g_dbus_message_set_sender (message, IBUS_NAME_OWNER_NAME);
-     g_dbus_message_set_destination (
-             message,
-             bus_connection_get_unique_name (context->connection));
-diff --git a/bus/matchrule.c b/bus/matchrule.c
-index 4fb1d902..2381ca9e 100644
---- a/bus/matchrule.c
-+++ b/bus/matchrule.c
-@@ -2,7 +2,8 @@
- /* vim:set et sts=4: */
- /* IBus - The Input Bus
-  * Copyright (C) 2008-2010 Peng Huang <shawn.p.huang@gmail.com>
-- * Copyright (C) 2008-2010 Red Hat, Inc.
-+ * Copyright (C) 2024 Takao Fujiwara <takao.fujiwara1@gmail.com>
-+ * Copyright (C) 2008-2024 Red Hat, Inc.
-  *
-  * This library is free software; you can redistribute it and/or
-  * modify it under the terms of the GNU Lesser General Public
-@@ -407,6 +408,13 @@ bus_match_rule_set_message_type (BusMatchRule   *rule,
-     return TRUE;
- }
- 
-+const gchar *
-+bus_match_rule_get_sender  (BusMatchRule    *rule)
-+{
-+    g_return_val_if_fail (rule != NULL, NULL);
-+    return rule->sender;
-+}
-+
- gboolean
- bus_match_rule_set_sender  (BusMatchRule    *rule,
-                             const gchar     *sender)
-diff --git a/bus/matchrule.h b/bus/matchrule.h
-index 1dd304cd..37b6347b 100644
---- a/bus/matchrule.h
-+++ b/bus/matchrule.h
-@@ -2,7 +2,8 @@
- /* vim:set et sts=4: */
- /* IBus - The Input Bus
-  * Copyright (C) 2008-2010 Peng Huang <shawn.p.huang@gmail.com>
-- * Copyright (C) 2008-2010 Red Hat, Inc.
-+ * Copyright (C) 2024 Takao Fujiwara <takao.fujiwara1@gmail.com>
-+ * Copyright (C) 2008-2024 Red Hat, Inc.
-  *
-  * This library is free software; you can redistribute it and/or
-  * modify it under the terms of the GNU Lesser General Public
-@@ -57,6 +58,7 @@ void             bus_match_rule_free        (BusMatchRule       *rule);
- gboolean         bus_match_rule_set_message_type
-                                             (BusMatchRule       *rule,
-                                              gint                type);
-+const gchar *    bus_match_rule_get_sender  (BusMatchRule       *rule);
- gboolean         bus_match_rule_set_sender  (BusMatchRule       *rule,
-                                              const gchar        *sender);
- gboolean         bus_match_rule_set_interface
--- 
-2.45.0
-
-From a4d58cb859cad4a0c12e2c2a34f440f77cd73bae Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Sat, 1 Jun 2024 20:20:19 +0900
-Subject: [PATCH 2/6] portal: Let Flatpak application accept new IBus unique name
-
-ibus-portal can accept the connection from IBUS_SERVICE_IBUS only
-but now the IBus unique name is changed to IBUS_NAME_OWNER_NAME
-as the D-Bus name owner and probably I think the name check is
-not needed and just delete it.
-
-BUG=https://github.com/ibus/ibus/issues/2639
-Fixes: https://github.com/ibus/ibus/commit/759105d
----
- portal/portal.c | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/portal/portal.c b/portal/portal.c
-index c2e4fc7f..34da9679 100644
---- a/portal/portal.c
-+++ b/portal/portal.c
-@@ -400,9 +400,6 @@ portal_context_g_signal (GDBusProxy        *proxy,
-     GError *error = NULL;
-     GDBusConnection *connection;
- 
--    if (g_strcmp0 (sender_name, IBUS_SERVICE_IBUS) != 0)
--        return;
--
-     connection = g_dbus_interface_skeleton_get_connection (
-             G_DBUS_INTERFACE_SKELETON (portal_context));
-     if (!g_dbus_connection_emit_signal (connection,
--- 
-2.45.0
-
-From 02632ccdd430fdc3d1a58025d31c5ec72d9a7989 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Sat, 1 Jun 2024 20:32:29 +0900
-Subject: [PATCH 3/6] portal: Support new sync ibus_input_context_process_key_event()
-
-IBus clients have been enhanced with the new synchronous
-"ProcessKeyEvent" to fix the long-standing issues and ibus-portal
-also needs to support it.
-
-Fixes: https://github.com/ibus/ibus/commit/38f09c6
----
- portal/org.freedesktop.IBus.Portal.xml |  7 +++-
- portal/portal.c                        | 54 ++++++++++++++++++++++++--
- 2 files changed, 56 insertions(+), 5 deletions(-)
-
-diff --git a/portal/org.freedesktop.IBus.Portal.xml b/portal/org.freedesktop.IBus.Portal.xml
-index 376ad424..0b3f6864 100644
---- a/portal/org.freedesktop.IBus.Portal.xml
-+++ b/portal/org.freedesktop.IBus.Portal.xml
-@@ -1,6 +1,6 @@
- <?xml version="1.0"?>
- <!--
-- Copyright (C) 2017-2019 Red Hat, Inc.
-+ Copyright (C) 2017-2024 Red Hat, Inc.
- 
-  This library is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Lesser General Public
-@@ -128,8 +128,13 @@
-       <arg type='v' name='prop' />
-     </signal>
- 
-+    <property name='PostProcessKeyEvent' type='(a(yv))' access='read'>
-+    </property>
-     <property name='ContentType' type='(uu)' access='write' />
-     <property name='ClientCommitPreedit' type='(b)' access='write' />
-+    <property name='EffectivePostProcessKeyEvent' type='(b)' access='write'>
-+    </property>
-+
-   </interface>
- 
-   <interface name='org.freedesktop.IBus.Service'>
-diff --git a/portal/portal.c b/portal/portal.c
-index 34da9679..5cd38779 100644
---- a/portal/portal.c
-+++ b/portal/portal.c
-@@ -1,7 +1,7 @@
- /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
- /* vim:set et sts=4: */
- /* ibus - The Input Bus
-- * Copyright (C) 2017-2021 Red Hat, Inc.
-+ * Copyright (C) 2017-2024 Red Hat, Inc.
-  *
-  * This library is free software; you can redistribute it and/or
-  * modify it under the terms of the GNU Lesser General Public
-@@ -66,8 +66,10 @@ struct _IBusPortalClass
- 
- enum
- {
--    PROP_CONTENT_TYPE = 1,
-+    PROP_POST_PROCESS_KEY_EVENT = 1,
-+    PROP_CONTENT_TYPE,
-     PROP_CLIENT_COMMIT_PREEDIT,
-+    PROP_EFFECTIVE_POST_PROCESS_KEY_EVENT,
-     N_PROPERTIES
- };
- 
-@@ -330,6 +332,23 @@ ibus_portal_context_set_property (IBusPortalContext *portal_context,
-                            NULL  /* user_data */
-                            );
-         break;
-+    case PROP_EFFECTIVE_POST_PROCESS_KEY_EVENT:
-+        g_dbus_proxy_call (G_DBUS_PROXY (portal_context->context),
-+                           "org.freedesktop.DBus.Properties.Set",
-+                           g_variant_new ("(ssv)",
-+                                          IBUS_INTERFACE_INPUT_CONTEXT,
-+                                          "EffectivePostProcessKeyEvent",
-+                                          g_value_get_variant (value)),
-+                           G_DBUS_CALL_FLAGS_NONE,
-+                           -1,
-+                           NULL, /* cancellable */
-+                           NULL, /* callback */
-+                           NULL  /* user_data */
-+                           );
-+        break;
-+    case PROP_POST_PROCESS_KEY_EVENT:
-+        g_warning ("No support for setting content type");
-+        break;
-     default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (portal_context, prop_id, pspec);
-     }
-@@ -341,10 +360,37 @@ ibus_portal_context_get_property (IBusPortalContext *portal_context,
-                                   GValue            *value,
-                                   GParamSpec        *pspec)
- {
-+    GVariant *result;
-+    GVariant *variant = NULL;
-+    GError *error = NULL;
-     switch (prop_id) {
-+    case PROP_POST_PROCESS_KEY_EVENT:
-+        result = g_dbus_proxy_call_sync (G_DBUS_PROXY (portal_context->context),
-+                                         "org.freedesktop.DBus.Properties.Get",
-+                                         g_variant_new (
-+                                                 "(ss)",
-+                                                 IBUS_INTERFACE_INPUT_CONTEXT,
-+                                                 "PostProcessKeyEvent"),
-+                                         G_DBUS_CALL_FLAGS_NONE,
-+                                         -1,
-+                                         NULL, /* cancellable */
-+                                         &error);
-+        if (error) {
-+            g_warning ("Error PostProcessKeyEvent: %s", error->message);
-+            g_error_free (error);
-+            break;
-+        }
-+        g_variant_get (result, "(v)", &variant);
-+        if (!variant) {
-+            g_warning ("No child in PostProcessKeyEvent");
-+            break;
-+        }
-+        g_value_set_variant (value, variant);
-+        break;
-     case PROP_CONTENT_TYPE:
-     case PROP_CLIENT_COMMIT_PREEDIT:
--        g_warning ("No support for setting content type");
-+    case PROP_EFFECTIVE_POST_PROCESS_KEY_EVENT:
-+        g_warning ("No support for getting content type");
-         break;
-     default:
-         G_OBJECT_WARN_INVALID_PROPERTY_ID (portal_context, prop_id, pspec);
-@@ -387,7 +433,7 @@ ibus_portal_context_class_init (IBusPortalContextClass *klass)
-     skeleton_class->g_authorize_method = ibus_portal_context_g_authorize_method;
- 
-     ibus_dbus_input_context_override_properties (gobject_class,
--                                                 PROP_CONTENT_TYPE);
-+                                                 PROP_POST_PROCESS_KEY_EVENT);
- }
- 
- static void
--- 
-2.45.0
-
-From 871c8312aa4bd6b785d7d9c779a1f9f51b709802 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Sat, 1 Jun 2024 21:27:38 +0900
-Subject: [PATCH 5/6] Fix Flatpak build for dnf and pyoverridesdir
-
-`dnf` is not available during Flatpak builds with `flatpak-builder` and
-the steps are omitted in autogen.sh to check FLATPAK_ID environment
-variable.
-
-When IBus is built with the Json files in test directory, the build
-tries to install IBus.py file into pyoverridesdir likes
-/usr/lib*/python3.12/site-packages/gi/overrides
-
-But the directory is readonly with `flatpak-builder` and could be
-failed.
-Now `--disable-pygobject` option is added to `configure`.
-
-IBus modules are embedded in Flatpak platforms likes GNOME, Freedesktop
-and this issue might not happen in the platform builds since
-the pyoverridesdir does not exist yet so this might fix the build
-issues with Json files only in test directory.
----
- autogen.sh                          |  2 +-
- configure.ac                        | 15 +++++++++++++--
- 4 files changed, 40 insertions(+), 9 deletions(-)
-
-diff --git a/autogen.sh b/autogen.sh
-index 90e126ec..cde8aaef 100755
---- a/autogen.sh
-+++ b/autogen.sh
-@@ -42,7 +42,7 @@ cd "$srcdir"
-     touch ChangeLog
- }
- 
--(test "x$DISABLE_INSTALL_PKGS" = "x") && {
-+(test "x$DISABLE_INSTALL_PKGS" = "x") && (test "x$FLATPAK_ID" = "x" ) && {
-     (test -f /etc/fedora-release ) && {
-         rpm -q $FEDORA_PKG1 || exit 1
-         rpm -q $FEDORA_PKG2 || exit 1
-diff --git a/configure.ac b/configure.ac
-index a5210004..fd1d15f7 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -509,9 +509,20 @@ AM_CONDITIONAL([ENABLE_DAEMON], [true])
- 
- PYGOBJECT_REQUIRED=3.0.0
- 
--PKG_CHECK_EXISTS([pygobject-3.0 >= $PYGOBJECT_REQUIRED],
--                 [enable_pygobject=yes], [enable_pygobject=no])
-+# When IBus is built with the Json files in test directory, the build
-+# tries to install IBus.py file into pyoverridesdir
-+# but the directory is readonly with `flatpak-builder` 
-+AC_ARG_ENABLE(pygobject,
-+    AS_HELP_STRING([--disable-pygobject],
-+                   [Disable pygobject.]),
-+    [enable_pygobject=$enableval],
-+    [enable_pygobject=yes]
-+)
- 
-+if test "x$enable_pygobject" = "xyes"; then
-+    PKG_CHECK_EXISTS([pygobject-3.0 >= $PYGOBJECT_REQUIRED],
-+                     [enable_pygobject=yes], [enable_pygobject=no])
-+fi
- if test "x$enable_pygobject" = "xyes"; then
-     PKG_CHECK_MODULES(PYTHON, [pygobject-3.0 >= $PYGOBJECT_REQUIRED])
- 
--- 
-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
-

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

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-31  2:08 Takao Fujiwara [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-05-31  2:09 [rpms/ibus] autotool: Delete upstreamed patches Takao Fujiwara
2026-05-31  2:09 Takao Fujiwara
2026-05-31  2:09 Takao Fujiwara
2026-05-31  2:08 Takao Fujiwara
2026-05-31  2:08 Takao Fujiwara
2026-05-31  2:08 Takao Fujiwara
2026-05-31  2:08 Takao Fujiwara
2026-05-31  2:08 Takao Fujiwara
2026-05-31  2:08 [rpms/ibus] autotool: Delete Upstreamed patches Takao Fujiwara
2026-05-31  2:08 [rpms/ibus] autotool: Delete upstreamed patches Takao Fujiwara
2026-05-31  2:08 Takao Fujiwara
2026-05-31  2:07 Takao Fujiwara
2026-05-31  2:07 Takao Fujiwara
2026-05-31  2:07 Takao Fujiwara
2026-05-31  2:07 Takao Fujiwara

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=178019331366.1.2971321519310882893.rpms-ibus-a9da27f5f0f7@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