[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 02bca34852: Utilize new string decoding feature in GTK native inp
From: |
Po Lu |
Subject: |
master 02bca34852: Utilize new string decoding feature in GTK native input |
Date: |
Fri, 18 Feb 2022 20:20:28 -0500 (EST) |
branch: master
commit 02bca34852b1f9dd2b3e5364274452d377686f6a
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Utilize new string decoding feature in GTK native input
* src/gtkutil.c (xg_im_context_commit): Don't decode strings
manually using g_utf8_to_ucs4 but pass unibyte string as the
keystroke event arg instead.
---
src/gtkutil.c | 28 +++++++---------------------
1 file changed, 7 insertions(+), 21 deletions(-)
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 5e41863c0a..bed983c77e 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -6095,29 +6095,15 @@ xg_im_context_commit (GtkIMContext *imc, gchar *str,
{
struct frame *f = user_data;
struct input_event ie;
- gunichar *ucs4_str;
- ucs4_str = g_utf8_to_ucs4_fast (str, -1, NULL);
+ EVENT_INIT (ie);
+ ie.kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
+ ie.arg = build_unibyte_string (str);
+ XSETFRAME (ie.frame_or_window, f);
+ ie.modifiers = 0;
+ ie.timestamp = 0;
- if (!ucs4_str)
- return;
-
- for (gunichar *c = ucs4_str; *c; c++)
- {
- EVENT_INIT (ie);
- ie.kind = (SINGLE_BYTE_CHAR_P (*c)
- ? ASCII_KEYSTROKE_EVENT
- : MULTIBYTE_CHAR_KEYSTROKE_EVENT);
- ie.arg = Qnil;
- ie.code = *c;
- XSETFRAME (ie.frame_or_window, f);
- ie.modifiers = 0;
- ie.timestamp = 0;
-
- kbd_buffer_store_event (&ie);
- }
-
- g_free (ucs4_str);
+ kbd_buffer_store_event (&ie);
}
static void
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 02bca34852: Utilize new string decoding feature in GTK native input,
Po Lu <=