summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2021-11-22 09:40:47 +0800
committerPo Lu <luangruo@yahoo.com>2021-11-22 09:40:47 +0800
commit4eb228bfac3cd384bc8b21cd0c46fc89b339b0ed (patch)
treeb22ef772ab938c3f10221556fd929a476032a461 /src
parenta4ac6090986262f5a01c858a35bdcfb1787ded45 (diff)
Also filter XI_KeyRelease events
* src/xterm.c (handle_one_xevent): Also filter XI_KeyRelease events through the X input method.
Diffstat (limited to 'src')
-rw-r--r--src/xterm.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 7c2276f2e6c..9d052c412b4 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -10649,6 +10649,25 @@ handle_one_xevent (struct x_display_info *dpyinfo,
}
case XI_KeyRelease:
x_display_set_last_user_time (dpyinfo, xev->time);
+#ifdef HAVE_X_I18N
+ XKeyPressedEvent xkey;
+
+ memset (&xkey, 0, sizeof xkey);
+
+ xkey.type = KeyRelease;
+ xkey.serial = 0;
+ xkey.send_event = xev->send_event;
+ xkey.display = xev->display;
+ xkey.window = xev->event;
+ xkey.root = xev->root;
+ xkey.subwindow = xev->child;
+ xkey.time = xev->time;
+ xkey.state = xev->mods.effective;
+ xkey.keycode = xev->detail;
+ xkey.same_screen = True;
+
+ x_filter_event (dpyinfo, (XEvent *) &xkey);
+#endif
goto XI_OTHER;
case XI_PropertyEvent:
case XI_HierarchyChanged: