diff options
author | Po Lu <luangruo@yahoo.com> | 2022-01-17 09:48:01 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2022-01-17 09:48:01 +0800 |
commit | 84ebb165771f2e0b4218ffa77916953681f9901e (patch) | |
tree | ce867eccb29a57be9243d2c270d9f49109f4a698 /src/gtkutil.c | |
parent | e25db1e167c7322497a1e33590177d57571188c8 (diff) | |
download | emacs-84ebb165771f2e0b4218ffa77916953681f9901e.tar.gz |
Translate timestamps when using GTK native input
* src/gtkutil.c (xg_widget_key_press_event_cb): Use timestamp
specified in key event.
(xg_filter_key): Translate timestamps.
Diffstat (limited to 'src/gtkutil.c')
-rw-r--r-- | src/gtkutil.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c index 48e981d0d9a..3cb8cd15332 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -6151,6 +6151,7 @@ xg_widget_key_press_event_cb (GtkWidget *widget, GdkEvent *event, inev.ie.modifiers |= x_x_to_emacs_modifiers (FRAME_DISPLAY_INFO (f), xstate); + inev.ie.timestamp = event->key.time; if (event->key.is_modifier) goto done; @@ -6324,6 +6325,7 @@ xg_filter_key (struct frame *frame, XEvent *xkey) NULL, NULL, &consumed); xg_add_virtual_mods (dpyinfo, &xg_event->key); xg_event->key.state &= ~consumed; + xg_event->key.time = xkey->xkey.time; #if GTK_CHECK_VERSION (3, 6, 0) xg_event->key.is_modifier = gdk_x11_keymap_key_is_modifier (keymap, xg_event->key.hardware_keycode); @@ -6337,6 +6339,7 @@ xg_filter_key (struct frame *frame, XEvent *xkey) xg_event->key.hardware_keycode = xev->detail; xg_event->key.group = xev->group.effective; xg_event->key.state = xev->mods.effective; + xg_event->key.time = xev->time; gdk_keymap_translate_keyboard_state (keymap, xev->detail, xev->mods.effective, |