[gtk-vnc] Use scancode instead of keycode names
- From: Daniel P. Berrange <dberrange src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk-vnc] Use scancode instead of keycode names
- Date: Tue, 13 Mar 2018 09:30:38 +0000 (UTC)
commit 8dee84bfd34cc88d41e98bdc9d7ac9f0f226644f
Author: Olivier Fourdan <ofourdan redhat com>
Date: Thu Mar 8 11:56:36 2018 +0100
Use scancode instead of keycode names
When running on Xwayland, the keycode mapping property is not available,
which causes unknown keycode mapping errors and the keyboard doesn't
work.
Check for a known scancode (“XK_Page_Up”) which differs to distinguish
between “xfree86” and “evdev” when the there is no keycode name.
Signed-off-by: Olivier Fourdan <ofourdan redhat com>
src/vncdisplaykeymap.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/src/vncdisplaykeymap.c b/src/vncdisplaykeymap.c
index 1d60d53..d51a9a0 100644
--- a/src/vncdisplaykeymap.c
+++ b/src/vncdisplaykeymap.c
@@ -173,11 +173,13 @@ const guint16 *vnc_display_keymap_gdk2rfb_table(size_t *maplen)
VNC_DEBUG("Using xquartz keycode mapping");
*maplen = G_N_ELEMENTS(keymap_xorgxquartz2rfb);
return keymap_xorgxquartz2rfb;
- } else if (keycodes && STRPREFIX(keycodes, "evdev")) {
+ } else if ((keycodes && STRPREFIX(keycodes, "evdev")) ||
+ (XKeysymToKeycode(xdisplay, XK_Page_Up) == 0x70)) {
VNC_DEBUG("Using evdev keycode mapping");
*maplen = G_N_ELEMENTS(keymap_xorgevdev2rfb);
return keymap_xorgevdev2rfb;
- } else if (keycodes && STRPREFIX(keycodes, "xfree86")) {
+ } else if ((keycodes && STRPREFIX(keycodes, "xfree86")) ||
+ (XKeysymToKeycode(xdisplay, XK_Page_Up) == 0x63)) {
VNC_DEBUG("Using xfree86 keycode mapping");
*maplen = G_N_ELEMENTS(keymap_xorgkbd2rfb);
return keymap_xorgkbd2rfb;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]