From fa120578db5fa99dd03167b440ab0eb9b06defe9 Mon Sep 17 00:00:00 2001 From: Rob Date: Sat, 14 Nov 2009 18:44:02 +0100 Subject: convert KEY_PRESS/RELEASE to utf8 --- events.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'events.c') diff --git a/events.c b/events.c index d123082..0fc9f5d 100644 --- a/events.c +++ b/events.c @@ -181,13 +181,17 @@ send_event(int type, const gchar *details, const gchar *custom_event) { void key_to_event(guint keyval, gint mode) { char byte[2] = {0, 0}; + gchar *utf_conv = NULL; /* check for Latin-1 characters (1:1 mapping) */ if ((keyval > 0x0020 && keyval <= 0x007e) || (keyval >= 0x0080 && keyval <= 0x00ff)) { - sprintf(byte, "%c", keyval); - send_event(mode == GDK_KEY_PRESS ? KEY_PRESS : KEY_RELEASE, - byte, NULL); + byte[0] = (char) keyval; + + /* convert to utf-8 */ + utf_conv = g_convert(byte, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL); + + send_event(mode == GDK_KEY_PRESS ? KEY_PRESS : KEY_RELEASE, utf_conv ? utf_conv : byte, NULL); } else send_event(mode == GDK_KEY_PRESS ? KEY_PRESS : KEY_RELEASE, -- cgit v1.2.3