emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 73e4335c58 1/2: Stop decoding GTK event strings when using native


From: Po Lu
Subject: master 73e4335c58 1/2: Stop decoding GTK event strings when using native input
Date: Tue, 11 Jan 2022 05:13:43 -0500 (EST)

branch: master
commit 73e4335c58ad8a475381dd4e585c55f4615e4d19
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Stop decoding GTK event strings when using native input
    
    * src/gtkutil.c (xg_widget_key_press_event_cb): Stop decoding
    event strings.
---
 src/gtkutil.c | 42 +++++++++---------------------------------
 1 file changed, 9 insertions(+), 33 deletions(-)

diff --git a/src/gtkutil.c b/src/gtkutil.c
index 8eab6ee723..3550a56e29 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -6123,9 +6123,6 @@ xg_widget_key_press_event_cb (GtkWidget *widget, GdkEvent 
*event,
   union buffered_input_event inev;
   guint keysym = event->key.keyval;
   unsigned int xstate;
-  gunichar *cb;
-  ptrdiff_t i;
-  glong len;
   gunichar uc;
 
   FOR_EACH_FRAME (tail, tem)
@@ -6235,40 +6232,19 @@ xg_widget_key_press_event_cb (GtkWidget *widget, 
GdkEvent *event,
       goto done;
     }
 
-  if (event->key.string)
-    {
-      cb = g_utf8_to_ucs4_fast (event->key.string, -1, &len);
-
-      for (i = 0; i < len; ++i)
-       {
-         inev.ie.kind = (SINGLE_BYTE_CHAR_P (cb[i])
-                         ? ASCII_KEYSTROKE_EVENT
-                         : MULTIBYTE_CHAR_KEYSTROKE_EVENT);
-         inev.ie.code = cb[i];
-
-         kbd_buffer_store_buffered_event (&inev, &xg_pending_quit_event);
-       }
-
-      g_free (cb);
+  uc = gdk_keyval_to_unicode (keysym);
 
-      inev.ie.kind = NO_EVENT;
+  if (uc)
+    {
+      inev.ie.kind = (SINGLE_BYTE_CHAR_P (uc)
+                     ? ASCII_KEYSTROKE_EVENT
+                     : MULTIBYTE_CHAR_KEYSTROKE_EVENT);
+      inev.ie.code = uc;
     }
   else
     {
-      uc = gdk_keyval_to_unicode (keysym);
-
-      if (uc)
-       {
-         inev.ie.kind = (SINGLE_BYTE_CHAR_P (uc)
-                         ? ASCII_KEYSTROKE_EVENT
-                         : MULTIBYTE_CHAR_KEYSTROKE_EVENT);
-         inev.ie.code = uc;
-       }
-      else
-       {
-         inev.ie.kind = NON_ASCII_KEYSTROKE_EVENT;
-         inev.ie.code = keysym;
-       }
+      inev.ie.kind = NON_ASCII_KEYSTROKE_EVENT;
+      inev.ie.code = keysym;
     }
 
  done:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]