diff options
author | kraxel <kraxel> | 2006-10-25 15:07:04 +0000 |
---|---|---|
committer | kraxel <kraxel> | 2006-10-25 15:07:04 +0000 |
commit | 6caa675a9500d283d31dfb7a5eb87f4950731592 (patch) | |
tree | 9201dd2a0a5a0c28954c212b18aa6c8b2f7c6cc6 /vnc.c | |
parent | e4309b4efef95f8f7a617c529642c29ccbf46690 (diff) | |
download | xenwatch-6caa675a9500d283d31dfb7a5eb87f4950731592.tar.gz |
make kbd handling configurable
Diffstat (limited to 'vnc.c')
-rw-r--r-- | vnc.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -289,8 +289,11 @@ static gboolean key_cb(GtkWidget *widget, GdkEventKey *event, int keydown; keydown = (8 == event->type); - if (event->hardware_keycode < linux_us_kbd_size) + if (vnc->keysyms) + keysym = event->keyval; + else if (event->hardware_keycode < linux_us_kbd_size) keysym = linux_us_kbd[event->hardware_keycode]; + if (keysym) SendKeyEvent(vnc->client, keysym, keydown ? TRUE : FALSE); else @@ -302,7 +305,8 @@ static gboolean key_cb(GtkWidget *widget, GdkEventKey *event, /* ------------------------------------------------------------------ */ /* public API functions */ -struct vnc_window* vnc_open(char *hostname, int displayno, int standalone) +struct vnc_window* vnc_open(char *hostname, int displayno, + int standalone, int keysyms) { char display[128]; char *argv[] = { "vnc-client", display, NULL }; @@ -315,6 +319,7 @@ struct vnc_window* vnc_open(char *hostname, int displayno, int standalone) goto err; memset(vnc,0,sizeof(*vnc)); vnc->standalone = standalone; + vnc->keysyms = keysyms; /* x11 */ vnc->dpy = gdk_x11_display_get_xdisplay(gdk_display_get_default()); |