diff options
author | Rob <rob.manea@gmail.com> | 2009-11-14 18:44:02 +0100 |
---|---|---|
committer | Rob <rob.manea@gmail.com> | 2009-11-14 18:44:02 +0100 |
commit | fa120578db5fa99dd03167b440ab0eb9b06defe9 (patch) | |
tree | df2d1891ef8524fc27f05722237663eed1d5b6cb /events.c | |
parent | b7629a9a2afa1b5305eb456ccae365112df94c3c (diff) |
convert KEY_PRESS/RELEASE to utf8
Diffstat (limited to 'events.c')
-rw-r--r-- | events.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -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, |