public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/ibus] autotool: Add DeleteSurroundingText to PostProcessKeyEvent
@ 2026-05-31 2:08 Takao Fujiwara
0 siblings, 0 replies; only message in thread
From: Takao Fujiwara @ 2026-05-31 2:08 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/ibus
Branch : autotool
Commit : 900c828556d0c47fd42833d4e91d944e9a83d2ef
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date : 2023-10-23T19:49:52+09:00
Stats : +137/-2 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/ibus/c/900c828556d0c47fd42833d4e91d944e9a83d2ef?branch=autotool
Log:
Add DeleteSurroundingText to PostProcessKeyEvent
---
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index db71d9b..3f3eae3 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -1280,3 +1280,135 @@ index ffc20de1..e3aae3d4 100644
--
2.41.0
+From f176569cf774f87b23270257da68249dcda837c9 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Wed, 18 Oct 2023 16:57:28 +0900
+Subject: [PATCH] src: Add DeleteSurroundingText to PostProcessKeyEvent
+
+DeleteSurroundingText also can be delayed sending to IBus clients.
+Now surrounding D-Bus methods are added to PostProcessKeyEvent.
+
+Fixes: https://github.com/ibus/ibus/commit/38f09c6
+
+BUG=https://github.com/ibus/ibus/issues/2570
+---
+ bus/inputcontext.c | 33 +++++++++++++++++++++++++++++++--
+ src/ibusinputcontext.c | 23 +++++++++++++++++++++++
+ 2 files changed, 54 insertions(+), 2 deletions(-)
+
+diff --git a/bus/inputcontext.c b/bus/inputcontext.c
+index aecc64f8..64430fe4 100644
+--- a/bus/inputcontext.c
++++ b/bus/inputcontext.c
+@@ -2382,7 +2382,7 @@ _engine_forward_key_event_cb (BusEngineProxy *engine,
+ g_assert (context->queue_during_process_key_event);
+
+ if (context->processing_key_event && g_queue_get_length (
+- context->queue_during_process_key_event) <= MAX_SYNC_DATA) {
++ context->queue_during_process_key_event) <= MAX_SYNC_DATA) {
+ SyncForwardingData *data;
+ IBusText *text = ibus_text_new_from_printf ("%u,%u,%u",
+ keyval, keycode, state);
+@@ -2420,6 +2420,21 @@ _engine_delete_surrounding_text_cb (BusEngineProxy *engine,
+
+ g_assert (context->engine == engine);
+
++ if (context->processing_key_event && g_queue_get_length (
++ context->queue_during_process_key_event) <= MAX_SYNC_DATA) {
++ SyncForwardingData *data;
++ IBusText *text = ibus_text_new_from_printf ("%d,%u",
++ offset_from_cursor, nchars);
++ if (g_queue_get_length (context->queue_during_process_key_event)
++ == MAX_SYNC_DATA) {
++ g_warning ("Exceed max number of sync process_key_event data");
++ }
++ data = g_slice_new (SyncForwardingData);
++ data->key = 'd';
++ data->text = g_object_ref (text);
++ g_queue_push_tail (context->queue_during_process_key_event, data);
++ return;
++ }
+ bus_input_context_emit_signal (context,
+ "DeleteSurroundingText",
+ g_variant_new ("(iu)",
+@@ -2442,6 +2457,20 @@ _engine_require_surrounding_text_cb (BusEngineProxy *engine,
+
+ g_assert (context->engine == engine);
+
++ if (context->processing_key_event && g_queue_get_length (
++ context->queue_during_process_key_event) <= MAX_SYNC_DATA) {
++ SyncForwardingData *data;
++ IBusText *text = ibus_text_new_from_static_string ("");
++ if (g_queue_get_length (context->queue_during_process_key_event)
++ == MAX_SYNC_DATA) {
++ g_warning ("Exceed max number of post process_key_event data");
++ }
++ data = g_slice_new (SyncForwardingData);
++ data->key = 'r';
++ data->text = text;
++ g_queue_push_tail (context->queue_during_process_key_event, data);
++ return;
++ }
+ bus_input_context_emit_signal (context,
+ "RequireSurroundingText",
+ NULL,
+@@ -3158,7 +3187,7 @@ bus_input_context_commit_text_use_extension (BusInputContext *context,
+ if (use_extension && context->emoji_extension) {
+ bus_panel_proxy_commit_text_received (context->emoji_extension, text);
+ } else if (context->processing_key_event && g_queue_get_length (
+- context->queue_during_process_key_event) <= MAX_SYNC_DATA) {
++ context->queue_during_process_key_event) <= MAX_SYNC_DATA) {
+ SyncForwardingData *data;
+ if (g_queue_get_length (context->queue_during_process_key_event)
+ == MAX_SYNC_DATA) {
+diff --git a/src/ibusinputcontext.c b/src/ibusinputcontext.c
+index def23b25..c6a030fe 100644
+--- a/src/ibusinputcontext.c
++++ b/src/ibusinputcontext.c
+@@ -1406,6 +1406,7 @@ ibus_input_context_set_post_process_key_event (IBusInputContext *context,
+ void
+ ibus_input_context_post_process_key_event (IBusInputContext *context)
+ {
++ IBusInputContextPrivate *priv;
+ GVariant *cached_var_post;
+ gboolean enable = FALSE;
+ GVariant *result;
+@@ -1418,6 +1419,7 @@ ibus_input_context_post_process_key_event (IBusInputContext *context)
+
+ g_assert (IBUS_IS_INPUT_CONTEXT (context));
+
++ priv = IBUS_INPUT_CONTEXT_GET_PRIVATE (IBUS_INPUT_CONTEXT (context));
+ cached_var_post =
+ g_dbus_proxy_get_cached_property ((GDBusProxy *)context,
+ "EffectivePostProcessKeyEvent");
+@@ -1479,6 +1481,27 @@ ibus_input_context_post_process_key_event (IBusInputContext *context)
+ state | IBUS_FORWARD_MASK);
+ break;
+ }
++ case 'r': {
++ priv->needs_surrounding_text = TRUE;
++ g_signal_emit (context,
++ context_signals[REQUIRE_SURROUNDING_TEXT], 0);
++ break;
++ }
++ case 'd': {
++ gchar **array = NULL;
++ gint offset_from_cursor;
++ guint nchars;
++ array = g_strsplit (text->text, ",", -1);
++ offset_from_cursor = g_ascii_strtoll (array[0], NULL, 10);
++ nchars = g_ascii_strtoull (array[1], NULL, 10);
++ g_strfreev (array);
++ g_signal_emit (context,
++ context_signals[DELETE_SURROUNDING_TEXT],
++ 0,
++ offset_from_cursor,
++ nchars);
++ break;
++ }
+ default:
+ g_warning ("%s: Type '%c' is not supported.", G_STRFUNC, type);
+ }
+--
+2.41.0
+
diff --git a/ibus.spec b/ibus.spec
index a179e67..428a934 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -58,7 +58,7 @@
Name: ibus
Version: 1.5.29~rc1
-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
@@ -579,7 +579,10 @@ dconf update || :
%{_datadir}/installed-tests/ibus
%changelog
-* Sat Sep 30 2023 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.29~rc1-3
+* Mon Oct 23 2023 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.29~rc1-5
+- Add DeleteSurroundingText to PostProcessKeyEvent
+
+* Sat Sep 30 2023 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.29~rc1-4
- Enhance #2237486 Implement preedit color in Plasma Wayland
- Part-of #2240490 Eacute with CapsLock in Plasma Wayland only
- Revert dnf5 to dnf in autogen
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-05-31 2:08 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-31 2:08 [rpms/ibus] autotool: Add DeleteSurroundingText to PostProcessKeyEvent Takao Fujiwara
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox