diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch index 40c33b6..95c0b02 100644 --- a/ibus-HEAD.patch +++ b/ibus-HEAD.patch @@ -1410,3 +1410,215 @@ index 1b62f656..600526e5 100644 -- 2.41.0 +From ac46d154e72fdc914e6d34ff1b251c8fcb70ce20 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Thu, 7 Dec 2023 20:34:49 +0900 +Subject: [PATCH] Refactor object initialization + +- client/wayland: Make sure IBusWaylandIM->ibuscontext is NULL + when IBusWaylandIM->context is NULL. + +- configure: Set some default help messages. + +- ui/gtk3: Make sure to call an error message if display is NULL. +--- + client/wayland/ibuswaylandim.c | 10 ++++++---- + configure.ac | 18 +++++++++--------- + ui/gtk3/panel.vala | 5 +---- + 3 files changed, 16 insertions(+), 17 deletions(-) + +diff --git a/client/wayland/ibuswaylandim.c b/client/wayland/ibuswaylandim.c +index 9e8f651e..0430538f 100644 +--- a/client/wayland/ibuswaylandim.c ++++ b/client/wayland/ibuswaylandim.c +@@ -115,6 +115,10 @@ struct wl_registry *_registry = NULL; + + static gboolean _use_sync_mode = 1; + ++static void input_method_deactivate ++ (void *data, ++ struct zwp_input_method_v1 *input_method, ++ struct zwp_input_method_context_v1 *context); + static GObject *ibus_wayland_im_constructor (GType type, + guint n_params, + GObjectConstructParam +@@ -1207,10 +1211,8 @@ input_method_activate (void *data, + + g_return_if_fail (IBUS_IS_WAYLAND_IM (wlim)); + priv = ibus_wayland_im_get_instance_private (wlim); +- if (priv->context) { +- zwp_input_method_context_v1_destroy (priv->context); +- priv->context = NULL; +- } ++ if (priv->context) ++ input_method_deactivate (data, input_method, context); + + priv->serial = 0; + priv->context = context; +diff --git a/configure.ac b/configure.ac +index 50b4a820..dc1410cc 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -233,7 +233,7 @@ AC_ARG_ENABLE(gtk4, + AS_HELP_STRING([--enable-gtk4], + [Build gtk4 im module]), + [enable_gtk4=$enableval], +- [enable_gtk4=no] ++ [enable_gtk4=yes] + ) + AM_CONDITIONAL([ENABLE_GTK4], [test x"$enable_gtk4" = x"yes"]) + +@@ -276,8 +276,7 @@ if test x"$enable_gtk2" = x"yes"; then + + gtk2_binary_version=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0` + GTK2_IM_MODULEDIR="$libdir"/gtk-2.0/$gtk2_binary_version/immodules +-else +- enable_gtk2="no (disabled, use --enable-gtk2 to enable)" ++ enable_gtk2="yes (enabled, use --disable-gtk2 to disable)" + fi + + if test x"$enable_gtk3" = x"yes"; then +@@ -297,7 +296,6 @@ if test x"$enable_gtk3" = x"yes"; then + gtk3_binary_version=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0` + GTK3_IM_MODULEDIR="$libdir"/gtk-3.0/$gtk3_binary_version/immodules + else +- enable_gtk3="no (disabled, use --enable-gtk3 to enable)" + enable_gdk3_wayland=no + fi + if test x"$enable_gdk3_wayland" != x"yes"; then +@@ -313,8 +311,7 @@ if test x"$enable_gtk4" = x"yes"; then + + gtk4_binary_version=`$PKG_CONFIG --variable=gtk_binary_version gtk4` + GTK4_IM_MODULEDIR="$libdir"/gtk-4.0/$gtk4_binary_version/immodules +-else +- enable_gtk4="no (disabled, use --enable-gtk4 to enable)" ++ enable_gtk4="yes (enabled, use --disable-gtk4 to disable)" + fi + + if test x"$enable_xim" = x"yes"; then +@@ -331,8 +328,10 @@ if test x"$enable_xim" = x"yes"; then + gtk+-2.0 + ]) + fi +-else +- enable_xim="no (disabled, use --enable-xim to enable)" ++ enable_xim="yes (enabled, use --disable-xim to disable)" ++fi ++if test x"$enable_gtk3" = x"yes"; then ++ enable_gtk3="yes (enabled, use --disable-gtk3 to disable)" + fi + + if $PKG_CONFIG --exists x11; then +@@ -363,8 +362,9 @@ if test x"$enable_wayland" = x"yes"; then + AC_SUBST(WAYLAND_PRTCLS_SUBDIR) + WAYLAND_SCANNER_RULES(['$(datadir)/$(WAYLAND_PRTCLS_SUBDIR)'])], + [AC_SUBST(wayland_scanner_rules)]) ++ enable_wayland="yes (enabled, use --disable-wayland to disable)" + else +- enable_wayland="no (disabled, use --enable-wayland to enable)" ++ wayland_scanner_rules="./wayland-scanner.mk" + AC_SUBST(wayland_scanner_rules) + fi + +diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala +index 783ec842..233dd29c 100644 +--- a/ui/gtk3/panel.vala ++++ b/ui/gtk3/panel.vala +@@ -111,10 +111,7 @@ class Panel : IBus.PanelService { + m_is_wayland_im = is_wayland_im; + + #if USE_GDK_WAYLAND +- var display = Gdk.Display.get_default(); +- Type instance_type = display.get_type(); +- Type wayland_type = typeof(GdkWayland.Display); +- m_is_wayland = instance_type.is_a(wayland_type); ++ m_is_wayland = !BindingCommon.default_is_xdisplay(); + #else + m_is_wayland = false; + warning("Checking Wayland is disabled"); +-- +2.41.0 + +From 8470873979e3435c29d98704f1ac7e1e47e9dc2f Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Thu, 14 Dec 2023 23:55:42 +0900 +Subject: [PATCH] ui/gtk3: Fix some warnings + +- Try to disable Vala warnings with gtk_menu_shell_insert() workaround. +- Stop string_slice() warning with different language lengths. +--- + ui/gtk3/panel.vala | 17 ++++++++++------- + ui/gtk3/switcher.vala | 4 +++- + 2 files changed, 13 insertions(+), 8 deletions(-) + +diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala +index 233dd29c..aa9e8664 100644 +--- a/ui/gtk3/panel.vala ++++ b/ui/gtk3/panel.vala +@@ -1433,7 +1433,8 @@ class Panel : IBus.PanelService { + + item = new Gtk.MenuItem.with_label(_("Preferences")); + item.activate.connect((i) => show_setup_dialog()); +- m_sys_menu.append(item); ++ // https://gitlab.gnome.org/GNOME/gtk/-/issues/5870 ++ m_sys_menu.insert(item, -1); + + #if EMOJI_DICT + item = new Gtk.MenuItem.with_label(_("Emoji Choice")); +@@ -1448,22 +1449,23 @@ class Panel : IBus.PanelService { + */ + panel_extension(event); + }); +- m_sys_menu.append(item); ++ // https://gitlab.gnome.org/GNOME/gtk/-/issues/5870 ++ m_sys_menu.insert(item, -1); + #endif + + item = new Gtk.MenuItem.with_label(_("About")); + item.activate.connect((i) => show_about_dialog()); +- m_sys_menu.append(item); ++ m_sys_menu.insert(item, -1); + +- m_sys_menu.append(new Gtk.SeparatorMenuItem()); ++ m_sys_menu.insert(new Gtk.SeparatorMenuItem(), -1); + + item = new Gtk.MenuItem.with_label(_("Restart")); + item.activate.connect((i) => m_bus.exit(true)); +- m_sys_menu.append(item); ++ m_sys_menu.insert(item, -1); + + item = new Gtk.MenuItem.with_label(_("Quit")); + item.activate.connect((i) => m_bus.exit(false)); +- m_sys_menu.append(item); ++ m_sys_menu.insert(item, -1); + + m_sys_menu.show_all(); + +@@ -1488,7 +1490,8 @@ class Panel : IBus.PanelService { + // Show properties and IME switching menu + m_property_manager.create_menu_items(m_ime_menu); + +- m_ime_menu.append(new Gtk.SeparatorMenuItem()); ++ // https://gitlab.gnome.org/GNOME/gtk/-/issues/5870 ++ m_ime_menu.insert(new Gtk.SeparatorMenuItem(), -1); + + // Append IMEs + foreach (var engine in m_engines) { +diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala +index e3fab8d9..26bded99 100644 +--- a/ui/gtk3/switcher.vala ++++ b/ui/gtk3/switcher.vala +@@ -592,7 +592,9 @@ class Switcher : Gtk.Window { + int index = 0; + + foreach (var saved_language in m_xkb_languages.get_values()) { +- if (language == saved_language[0:length]) ++ // Duplicated langauge is EN, EN_2 for E.G. ++ if (length <= saved_language.length && ++ language == saved_language[0:length]) + index++; + } + +-- +2.41.0 + diff --git a/ibus.spec b/ibus.spec index f997a7d..90a3499 100644 --- a/ibus.spec +++ b/ibus.spec @@ -58,7 +58,7 @@ Name: ibus Version: 1.5.29~rc2 -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 @@ -365,6 +365,7 @@ autoreconf -f -i -v --enable-introspection \ --enable-install-tests \ %{nil} +make -C ui/gtk3 maintainer-clean-generic %make_build @@ -580,6 +581,10 @@ dconf update || : %{_datadir}/installed-tests/ibus %changelog +* Fri Dec 15 2023 Takao Fujiwara - 1.5.29~rc2-5 +- Refactor object initialization +- Fix some warnings + * Tue Dec 05 2023 Takao Fujiwara - 1.5.29~rc2-4 - Complete preedit signals for PostProcessKeyEvent