Fix forwarding keycode in GTK4

This commit is contained in:
Takao Fujiwara 2022-02-21 21:27:54 +09:00
parent ee71d023a9
commit a902aab7a9
2 changed files with 55 additions and 10 deletions

View File

@ -1926,9 +1926,9 @@ index 00000000..76444dbd
--
2.33.1
From 9a87a78549cb938c4810bcd311dd36823afd0fcd Mon Sep 17 00:00:00 2001
From b5423f0cff78e627fec12378bfcc70efa79e9379 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Sat, 12 Feb 2022 10:50:54 +0900
Date: Thu, 17 Feb 2022 20:15:38 +0900
Subject: [PATCH] src/services: Add org.freedesktop.IBus.session.generic.service
Move bus/*.service.in & src/*.service.in into bus/services
@ -1988,7 +1988,7 @@ index 4383a874..e173ee25 100644
-include $(top_srcdir)/git.mk
diff --git a/bus/services/Makefile.am b/bus/services/Makefile.am
new file mode 100644
index 00000000..53c21f58
index 00000000..9cc42153
--- /dev/null
+++ b/bus/services/Makefile.am
@@ -0,0 +1,68 @@
@ -2016,11 +2016,11 @@ index 00000000..53c21f58
+
+NULL =
+
+# Originally this file was added for GNOME but seems not to be used
+# at present.
+# Originally this D-Bus service file was added for GNOME but seems not to
+# be used at present.
+#
+# TODO: Check if flatpack uses this file and we could rename
+# org.freedesktop.IBus.service to org.freedesktop.IBus.DBus.GNOME.service
+# TODO: Check if flatpack uses this file and we could delete
+# org.freedesktop.IBus.service file in the future.
+dbusservice_in_files = org.freedesktop.IBus.service.in
+dbusservice_DATA = $(dbusservice_in_files:.service.in=.service)
+dbusservicedir=${datadir}/dbus-1/services
@ -2230,9 +2230,51 @@ index bbaa6c90..578694b5 100644
--
2.33.1
From e325fc21b492eee83cb93712472495059395dc7b Mon Sep 17 00:00:00 2001
From 5cfe838715097d61b50da55f80bcff2c698ca885 Mon Sep 17 00:00:00 2001
From: Changwoo Ryu <cwryu@debian.org>
Date: Fri, 18 Feb 2022 09:07:02 +0900
Subject: [PATCH] client/gtk2/ibusimcontext: Fix forward key keycode for GTK4
When a keycode is provided (!= 0) for a forwarded key event, convert it to a
GTK keycode before passing it to gtk_im_context_filter_key().
Also free GdkKeymapKey after gdk_display_map_keyval() is called.
BUG=https://github.com/ibus/ibus/issues/2380
BUG=https://github.com/ibus/ibus/issues/2382
---
client/gtk2/ibusimcontext.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
index c2df3a87..a5e5e792 100644
--- a/client/gtk2/ibusimcontext.c
+++ b/client/gtk2/ibusimcontext.c
@@ -1945,7 +1945,9 @@ _ibus_context_forward_key_event_cb (IBusInputContext *ibuscontext,
#if GTK_CHECK_VERSION (3, 98, 4)
int group = 0;
g_return_if_fail (GTK_IS_IM_CONTEXT (ibusimcontext));
- if (keycode == 0 && ibusimcontext->client_window) {
+ if (keycode != 0) {
+ keycode += 8; // to GTK keycode
+ } else if (ibusimcontext->client_window) {
GdkDisplay *display =
gtk_widget_get_display (ibusimcontext->client_window);
GdkKeymapKey *keys = NULL;
@@ -1953,6 +1955,7 @@ _ibus_context_forward_key_event_cb (IBusInputContext *ibuscontext,
if (gdk_display_map_keyval (display, keyval, &keys, &n_keys)) {
keycode = keys->keycode;
group = keys->group;
+ g_free (keys);
} else {
g_warning ("Failed to parse keycode from keyval %x", keyval);
}
--
2.33.1
From a82bda58a45470c4be0f3db21eaddc73a230807f Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Sat, 12 Feb 2022 11:02:29 +0900
Date: Fri, 18 Feb 2022 12:04:09 +0900
Subject: [PATCH] src/tests: Fix typos
- test_metas_in location

View File

@ -39,7 +39,7 @@
Name: ibus
Version: 1.5.25
Release: 10%{?dist}
Release: 11%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPLv2+
URL: https://github.com/ibus/%name/wiki
@ -522,6 +522,9 @@ dconf update || :
%{_datadir}/installed-tests/ibus
%changelog
* Mon Feb 21 2022 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.25-11
- Fix forwarding keycode in GTK4
* Fri Feb 11 2022 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.25-10
- Do not mkdir abstract unix socket
- Fix IBus.key_event_from_string