public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/ibus] autotool: Implement ibus_im_context_set_surrounding_with_selection()
@ 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 : 6d1c1930320b0270c7b6a3b8f0525ef85b72011f
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date : 2021-05-21T12:28:05+09:00
Stats : +124/-0 in 1 file(s)
URL : https://src.fedoraproject.org/rpms/ibus/c/6d1c1930320b0270c7b6a3b8f0525ef85b72011f?branch=autotool
Log:
Implement ibus_im_context_set_surrounding_with_selection()
---
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index 021f84a..4486994 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -106,3 +106,127 @@ index 4232c549..23e3411e 100755
--
2.28.0
+From d105a3941aad53b0c7470a1e9c1033987b029fb8 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Wed, 12 May 2021 18:54:30 +0900
+Subject: [PATCH] client/gtk2: Implement
+ ibus_im_context_set_surrounding_with_selection()
+
+Selection bounds need to be re-calculated when pre-edit text is
+inserted and the selection position is changed.
+GTK4 has a new API GtkIMContext.set_surrounding_with_selection()
+to fix this issue and now IBus GTK module inherits the API.
+
+BUG=https://github.com/ibus/ibus/issues/2013
+---
+ client/gtk2/ibusimcontext.c | 53 ++++++++++++++++++++++++++++++-------
+ 1 file changed, 44 insertions(+), 9 deletions(-)
+
+diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
+index e153081d..61194816 100644
+--- a/client/gtk2/ibusimcontext.c
++++ b/client/gtk2/ibusimcontext.c
+@@ -2,8 +2,8 @@
+ /* vim:set et sts=4: */
+ /* ibus - The Input Bus
+ * Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com>
+- * Copyright (C) 2015-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>
+- * Copyright (C) 2008-2020 Red Hat, Inc.
++ * Copyright (C) 2015-2021 Takao Fujiwara <takao.fujiwara1@gmail.com>
++ * Copyright (C) 2008-2021 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
+@@ -165,11 +165,19 @@ static void ibus_im_context_set_cursor_location
+ static void ibus_im_context_set_use_preedit
+ (GtkIMContext *context,
+ gboolean use_preedit);
++#if !GTK_CHECK_VERSION (4, 1, 2)
+ static void ibus_im_context_set_surrounding
+ (GtkIMContext *slave,
+ const gchar *text,
+- gint len,
+- gint cursor_index);
++ int len,
++ int cursor_index);
++#endif
++static void ibus_im_context_set_surrounding_with_selection
++ (GtkIMContext *slave,
++ const gchar *text,
++ int len,
++ int cursor_index,
++ int anchor_index);
+
+ /* static methods*/
+ static void _ibus_context_update_preedit_text_cb
+@@ -724,7 +732,12 @@ ibus_im_context_class_init (IBusIMContextClass *class)
+ #endif
+ im_context_class->set_cursor_location = ibus_im_context_set_cursor_location;
+ im_context_class->set_use_preedit = ibus_im_context_set_use_preedit;
++#if GTK_CHECK_VERSION (4, 1, 2)
++ im_context_class->set_surrounding_with_selection
++ = ibus_im_context_set_surrounding_with_selection;
++#else
+ im_context_class->set_surrounding = ibus_im_context_set_surrounding;
++#endif
+ gobject_class->notify = ibus_im_context_notify;
+ gobject_class->finalize = ibus_im_context_finalize;
+
+@@ -1624,8 +1637,22 @@ get_selection_anchor_point (IBusIMContext *ibusimcontext,
+ static void
+ ibus_im_context_set_surrounding (GtkIMContext *context,
+ const gchar *text,
+- gint len,
+- gint cursor_index)
++ int len,
++ int cursor_index)
++{
++ ibus_im_context_set_surrounding_with_selection (context,
++ text,
++ len,
++ cursor_index,
++ cursor_index);
++}
++
++static void
++ibus_im_context_set_surrounding_with_selection (GtkIMContext *context,
++ const gchar *text,
++ int len,
++ int cursor_index,
++ int anchor_index)
+ {
+ g_return_if_fail (context != NULL);
+ g_return_if_fail (IBUS_IS_IM_CONTEXT (context));
+@@ -1647,18 +1674,26 @@ ibus_im_context_set_surrounding (GtkIMContext *context,
+ ibustext = ibus_text_new_from_string (p);
+ g_free (p);
+
+- guint anchor_pos = get_selection_anchor_point (ibusimcontext,
+- cursor_pos,
+- utf8_len);
++ gint anchor_pos = get_selection_anchor_point (ibusimcontext,
++ cursor_pos,
++ utf8_len);
+ ibus_input_context_set_surrounding_text (ibusimcontext->ibuscontext,
+ ibustext,
+ cursor_pos,
+ anchor_pos);
+ }
++#if GTK_CHECK_VERSION (4, 1, 2)
++ gtk_im_context_set_surrounding_with_selection (ibusimcontext->slave,
++ text,
++ len,
++ cursor_index,
++ anchor_index);
++#else
+ gtk_im_context_set_surrounding (ibusimcontext->slave,
+ text,
+ len,
+ cursor_index);
++#endif
+ }
+
+ static void
+--
+2.28.0
+
^ 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: Implement ibus_im_context_set_surrounding_with_selection() Takao Fujiwara
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox