public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/ibus] autotool: Resolves: #2093313 Stop many warnings of surrounding text
@ 2026-05-31 2:07 Takao Fujiwara
0 siblings, 0 replies; only message in thread
From: Takao Fujiwara @ 2026-05-31 2:07 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/ibus
Branch : autotool
Commit : 966b2fc35c01d73232cc364202f88ab7101e12fb
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date : 2022-09-16T18:24:38+09:00
Stats : +303/-1 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/ibus/c/966b2fc35c01d73232cc364202f88ab7101e12fb?branch=autotool
Log:
Resolves: #2093313 Stop many warnings of surrounding text
Also fix other surrounding text issues
---
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index e69de29..798101a 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -0,0 +1,295 @@
+From babad7839ba6d72609c717d647bb2928724b4cc3 Mon Sep 17 00:00:00 2001
+From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
+Date: Tue, 6 Sep 2022 17:08:43 +0900
+Subject: [PATCH] tools: Check libdl for dlclose() properly in configure
+
+BUG=https://github.com/ibus/ibus/pull/2442
+---
+ configure.ac | 4 ++++
+ tools/Makefile.am | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0868d6c9..2344523a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -147,6 +147,10 @@ AC_CHECK_HEADERS([sys/prctl.h])
+ # Check functions.
+ AC_CHECK_FUNCS(daemon)
+
++# Check dlclose() in libc.so.
++AC_CHECK_LIB(c, dlclose, LIBDL="", [AC_CHECK_LIB(dl, dlclose, LIBDL="-ldl")])
++AC_SUBST(LIBDL)
++
+ # Check packages.
+ # Check glib2.
+ AM_PATH_GLIB_2_0
+diff --git a/tools/Makefile.am b/tools/Makefile.am
+index b82395da..e300f9f3 100644
+--- a/tools/Makefile.am
++++ b/tools/Makefile.am
+@@ -63,7 +63,7 @@ AM_LDADD = \
+ @GTHREAD2_LIBS@ \
+ $(libibus) \
+ $(libibusimmodule) \
+- -ldl \
++ $(LIBDL) \
+ $(NULL)
+
+ AM_VALAFLAGS = \
+--
+2.37.3
+
+From 39b69073ad34ab89a3e5aa012ff740c84f69eb8f Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Fri, 16 Sep 2022 14:30:35 +0900
+Subject: [PATCH] client/gtk2: Stop many warnings of surrounding text
+
+Surrounding text is requested by ibus_im_context_filter_keypress()
+and the no supported warning could be output many times.
+Now the warning is output one time by input context but
+brower applicaations do not use GtkWidget for the input context
+so the warning is output by instance but not input context.
+
+BUG=https://github.com/ibus/ibus/issues/2418
+---
+ client/gtk2/ibusimcontext.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
+index bc14df00..3fc9c0f2 100644
+--- a/client/gtk2/ibusimcontext.c
++++ b/client/gtk2/ibusimcontext.c
+@@ -567,6 +567,7 @@ _process_key_event (IBusInputContext *context,
+ static void
+ _request_surrounding_text (IBusIMContext *context)
+ {
++ static gboolean warned = FALSE;
+ if (context &&
+ (context->caps & IBUS_CAP_SURROUNDING_TEXT) != 0 &&
+ context->ibuscontext != NULL &&
+@@ -580,8 +581,11 @@ _request_surrounding_text (IBusIMContext *context)
+ * fail with the first typing on firefox but it succeeds with
+ * the second typing.
+ */
+- g_warning ("%s has no capability of surrounding-text feature",
+- g_get_prgname ());
++ if (!warned) {
++ g_warning ("%s has no capability of surrounding-text feature",
++ g_get_prgname ());
++ warned = TRUE;
++ }
+ }
+ }
+ }
+--
+2.37.3
+
+From 50f8d8b79bc8eac1bae80116fe669d7314a44663 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Fri, 16 Sep 2022 14:34:54 +0900
+Subject: [PATCH] client/gtk2: Update capabilities if "retrieve-surrounding" is
+ failed
+
+Some engine developers wish to update the capabilities if emitting
+"retrieve-surrounding" signal is failed so that engines disable the
+surrounding text feature but I had deleted the logic with #2054 since
+the second typing could be succeeded.
+Asking all applications the second typing would not be a good condition
+and the special issue should be fixed in firefox.
+
+Fixes: https://github.com/ibus/ibus/commit/7b3b8c8b0c
+
+BUG=https://github.com/ibus/ibus/issues/2054
+BUG=https://github.com/ibus/ibus/issues/2354
+---
+ client/gtk2/ibusimcontext.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
+index 3fc9c0f2..eaf7eb90 100644
+--- a/client/gtk2/ibusimcontext.c
++++ b/client/gtk2/ibusimcontext.c
+@@ -577,10 +577,14 @@ _request_surrounding_text (IBusIMContext *context)
+ g_signal_emit (context, _signal_retrieve_surrounding_id, 0,
+ &return_value);
+ if (!return_value) {
+- /* #2054 firefox::IMContextWrapper::GetCurrentParagraph() could
+- * fail with the first typing on firefox but it succeeds with
+- * the second typing.
++ /* Engines can disable the surrounding text feature with
++ * the updated capabilities.
+ */
++ if (context->caps & IBUS_CAP_SURROUNDING_TEXT) {
++ context->caps &= ~IBUS_CAP_SURROUNDING_TEXT;
++ ibus_input_context_set_capabilities (context->ibuscontext,
++ context->caps);
++ }
+ if (!warned) {
+ g_warning ("%s has no capability of surrounding-text feature",
+ g_get_prgname ());
+--
+2.37.3
+
+From 483abb429fed4c51e214fa6c1efbb54ca73d5b28 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Fri, 16 Sep 2022 14:50:53 +0900
+Subject: [PATCH] client/gtk2: Update surrounding text properties by focus in
+
+ibus_input_context_set_surrounding_text() should be succeeded
+if input contexts are different so that ibus engines can
+update surrounding text properties with focus in event.
+
+When an input context is created newly, RequireSurroundingText D-Bus
+signal could not be received yet and set_surrounding_text() is failed.
+Now "require-surrounding-text" signal is added to IBusInputContext
+and clients can call set_surrounding_text() later.
+
+BUG=https://github.com/ibus/ibus/issues/2423
+---
+ client/gtk2/ibusimcontext.c | 25 +++++++++++++++++++++++++
+ src/ibusinputcontext.c | 24 ++++++++++++++++++++++--
+ 2 files changed, 47 insertions(+), 2 deletions(-)
+
+diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
+index eaf7eb90..6e338157 100644
+--- a/client/gtk2/ibusimcontext.c
++++ b/client/gtk2/ibusimcontext.c
+@@ -70,6 +70,7 @@ struct _IBusIMContext {
+ #endif
+
+ IBusInputContext *ibuscontext;
++ IBusInputContext *ibuscontext_needs_surrounding;
+
+ /* preedit status */
+ gchar *preedit_string;
+@@ -985,6 +986,7 @@ ibus_im_context_init (GObject *obj)
+ ibusimcontext->cursor_area.height = 0;
+
+ ibusimcontext->ibuscontext = NULL;
++ ibusimcontext->ibuscontext_needs_surrounding = NULL;
+ ibusimcontext->has_focus = FALSE;
+ ibusimcontext->time = GDK_CURRENT_TIME;
+ #ifdef ENABLE_SURROUNDING
+@@ -2183,6 +2185,18 @@ _ibus_context_hide_preedit_text_cb (IBusInputContext *ibuscontext,
+ g_signal_emit (ibusimcontext, _signal_preedit_end_id, 0);
+ }
+
++static void
++_ibus_context_require_surrounding_text_cb (IBusInputContext *ibuscontext,
++ IBusIMContext *ibusimcontext)
++{
++ IDEBUG ("%s", __FUNCTION__);
++ g_assert (ibusimcontext->ibuscontext == ibuscontext);
++ if (ibusimcontext->ibuscontext_needs_surrounding == ibuscontext) {
++ _request_surrounding_text (ibusimcontext);
++ ibusimcontext->ibuscontext_needs_surrounding = NULL;
++ }
++}
++
+ static void
+ _ibus_context_destroy_cb (IBusInputContext *ibuscontext,
+ IBusIMContext *ibusimcontext)
+@@ -2249,6 +2263,11 @@ _create_input_context_done (IBusBus *bus,
+ "hide-preedit-text",
+ G_CALLBACK (_ibus_context_hide_preedit_text_cb),
+ ibusimcontext);
++ g_signal_connect (
++ ibusimcontext->ibuscontext,
++ "require-surrounding-text",
++ G_CALLBACK (_ibus_context_require_surrounding_text_cb),
++ ibusimcontext);
+ g_signal_connect (ibusimcontext->ibuscontext, "destroy",
+ G_CALLBACK (_ibus_context_destroy_cb),
+ ibusimcontext);
+@@ -2265,6 +2284,12 @@ _create_input_context_done (IBusBus *bus,
+
+ ibus_input_context_focus_in (ibusimcontext->ibuscontext);
+ _set_cursor_location_internal (ibusimcontext);
++ if (ibus_input_context_needs_surrounding_text (
++ ibusimcontext->ibuscontext)) {
++ _request_surrounding_text (ibusimcontext);
++ } else {
++ ibusimcontext->ibuscontext_needs_surrounding = ibusimcontext->ibuscontext;
++ }
+ }
+
+ if (!g_queue_is_empty (ibusimcontext->events_queue)) {
+diff --git a/src/ibusinputcontext.c b/src/ibusinputcontext.c
+index 7981de38..ed887dde 100644
+--- a/src/ibusinputcontext.c
++++ b/src/ibusinputcontext.c
+@@ -2,7 +2,7 @@
+ /* vim:set et sts=4: */
+ /* ibus - The Input Bus
+ * Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com>
+- * Copyright (C) 2018-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
++ * Copyright (C) 2018-2022 Takao Fujiwara <takao.fujiwara1@gmail.com>
+ * Copyright (C) 2008-2019 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+@@ -55,6 +55,7 @@ enum {
+ CURSOR_DOWN_LOOKUP_TABLE,
+ REGISTER_PROPERTIES,
+ UPDATE_PROPERTY,
++ REQUIRE_SURROUNDING_TEXT,
+ LAST_SIGNAL,
+ };
+
+@@ -488,6 +489,21 @@ ibus_input_context_class_init (IBusInputContextClass *class)
+ 1,
+ IBUS_TYPE_PROPERTY);
+
++ /**
++ * IBusInputContext::require-surrounding-text:
++ * @context: An IBusInputContext.
++ *
++ * Emitted to receive the RequireSurroundingText signal from the daemon.
++ */
++ context_signals[REQUIRE_SURROUNDING_TEXT] =
++ g_signal_new (I_("require-surrounding-text"),
++ G_TYPE_FROM_CLASS (class),
++ G_SIGNAL_RUN_LAST,
++ 0,
++ NULL, NULL,
++ _ibus_marshal_VOID__VOID,
++ G_TYPE_NONE, 0);
++
+ text_empty = ibus_text_new_from_static_string ("");
+ g_object_ref_sink (text_empty);
+ }
+@@ -735,6 +751,7 @@ ibus_input_context_g_signal (GDBusProxy *proxy,
+
+ if (g_strcmp0 (signal_name, "RequireSurroundingText") == 0) {
+ priv->needs_surrounding_text = TRUE;
++ g_signal_emit (context, context_signals[REQUIRE_SURROUNDING_TEXT], 0);
+ return;
+ }
+
+@@ -1109,6 +1126,7 @@ ibus_input_context_set_surrounding_text (IBusInputContext *context,
+ guint32 cursor_pos,
+ guint32 anchor_pos)
+ {
++ static IBusInputContext *prev_context = NULL;
+ IBusInputContextPrivate *priv;
+
+ g_assert (IBUS_IS_INPUT_CONTEXT (context));
+@@ -1119,12 +1137,14 @@ ibus_input_context_set_surrounding_text (IBusInputContext *context,
+ if (cursor_pos != priv->surrounding_cursor_pos ||
+ anchor_pos != priv->selection_anchor_pos ||
+ priv->surrounding_text == NULL ||
+- g_strcmp0 (text->text, priv->surrounding_text->text) != 0) {
++ g_strcmp0 (text->text, priv->surrounding_text->text) != 0 ||
++ context != prev_context) {
+ if (priv->surrounding_text)
+ g_object_unref (priv->surrounding_text);
+ priv->surrounding_text = (IBusText *) g_object_ref_sink (text);
+ priv->surrounding_cursor_pos = cursor_pos;
+ priv->selection_anchor_pos = anchor_pos;
++ prev_context = context;
+
+ if (priv->needs_surrounding_text) {
+ GVariant *variant = ibus_serializable_serialize ((IBusSerializable *)text);
+--
+2.37.3
+
diff --git a/ibus.spec b/ibus.spec
index d76ae83..3a7db6b 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -39,7 +39,7 @@
Name: ibus
Version: 1.5.27
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPLv2+
URL: https://github.com/ibus/%name/wiki
@@ -47,6 +47,7 @@ Source0: https://github.com/ibus/%name/releases/download/%{version}/%{nam
Source1: %{name}-xinput
Source2: %{name}.conf.5
# Patch0: %%{name}-HEAD.patch
+Patch0: %{name}-HEAD.patch
# Under testing #1349148 #1385349 #1350291 #1406699 #1432252 #1601577
Patch1: %{name}-1385349-segv-bus-proxy.patch
%if 0%{?fedora:0}%{?rhel:1}
@@ -277,6 +278,8 @@ the functionality of the installed %{name} package.
# cp client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c || :
# cp client/gtk2/ibusim.c client/gtk3/ibusim.c || :
# cp client/gtk2/ibusimcontext.c client/gtk4/ibusimcontext.c || :
+cp client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c || :
+cp client/gtk2/ibusimcontext.c client/gtk4/ibusimcontext.c || :
# prep test
@@ -518,6 +521,10 @@ dconf update || :
%{_datadir}/installed-tests/ibus
%changelog
+* Fri Sep 16 2022 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.27-2
+- Resolves: #2093313 Stop many warnings of surrounding text
+- Fix other surrounding text issues
+
* Tue Aug 23 2022 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.27-1
- Bump to 1.5.27
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-05-31 2:07 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:07 [rpms/ibus] autotool: Resolves: #2093313 Stop many warnings of surrounding text Takao Fujiwara
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox