From 50a86abbb9314b2972e772b21a86fd7bf8fcf7db Mon Sep 17 00:00:00 2001 From: jsorg71 Date: Wed, 26 Sep 2007 06:59:10 +0000 Subject: [PATCH] added unicode_to_keysym function --- vnc/vnc.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/vnc/vnc.c b/vnc/vnc.c index 90de0cea..88621a96 100644 --- a/vnc/vnc.c +++ b/vnc/vnc.c @@ -202,6 +202,24 @@ lib_process_channel_data(struct vnc* v, int chanid, int size, struct stream* s) return 0; } +/******************************************************************************/ +static int APP_CC +unicode_to_keysym(int unicode) +{ + int keysym; + + switch (unicode) + { + case 0x017e: /* LATIN SMALL LETTER Z WITH CARON */ + keysym = 0x01be; + break; + default: + keysym = unicode; + break; + } + return keysym; +} + /******************************************************************************/ int DEFAULT_CC lib_mod_event(struct vnc* v, int msg, long param1, long param2, @@ -244,17 +262,7 @@ lib_mod_event(struct vnc* v, int msg, long param1, long param2, key = 0; if (param2 == 0xffff) /* ascii char */ { - /*g_writeln("msg %d param1 %x param2 %x param3 %x param4 %x", - msg, param1, param2, param3, param4);*/ - switch (param1) - { - case 0x80: /* EuroSign */ - key = 0x20ac; - break; - default: - key = param1; - break; - } + key = unicode_to_keysym(param1); } else /* non ascii key event */ {