diff options
author | jsorg71 <jsorg71> | 2007-09-26 06:59:10 +0000 |
---|---|---|
committer | jsorg71 <jsorg71> | 2007-09-26 06:59:10 +0000 |
commit | 50a86abbb9314b2972e772b21a86fd7bf8fcf7db (patch) | |
tree | b6ac12a42cc73f2d730f54ca6bdb5a4a254395b9 | |
parent | fc4fe616d1b4041751b3aec18dbddfd0ef7b05a5 (diff) | |
download | xrdp-proprietary-50a86abbb9314b2972e772b21a86fd7bf8fcf7db.tar.gz xrdp-proprietary-50a86abbb9314b2972e772b21a86fd7bf8fcf7db.zip |
added unicode_to_keysym function
-rw-r--r-- | vnc/vnc.c | 30 |
1 files changed, 19 insertions, 11 deletions
@@ -203,6 +203,24 @@ lib_process_channel_data(struct vnc* v, int chanid, int size, struct stream* s) } /******************************************************************************/ +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, long param3, long param4) @@ -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 */ { |