summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsorg71 <jsorg71>2007-09-26 06:59:10 +0000
committerjsorg71 <jsorg71>2007-09-26 06:59:10 +0000
commit50a86abbb9314b2972e772b21a86fd7bf8fcf7db (patch)
treeb6ac12a42cc73f2d730f54ca6bdb5a4a254395b9
parentfc4fe616d1b4041751b3aec18dbddfd0ef7b05a5 (diff)
downloadxrdp-proprietary-50a86abbb9314b2972e772b21a86fd7bf8fcf7db.tar.gz
xrdp-proprietary-50a86abbb9314b2972e772b21a86fd7bf8fcf7db.zip
added unicode_to_keysym function
-rw-r--r--vnc/vnc.c30
1 files 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
@@ -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 */
{