From 9de5feedffd4d860aa67212ee21c890f66e0f489 Mon Sep 17 00:00:00 2001 From: Levente Uzonyi Date: Tue, 24 Dec 2019 01:25:05 +0100 Subject: [PATCH] Fix shift-tab on unix Shift-tab didn't generate a "key char event" on unix, because XK_ISO_Left_Tab was not mapped in xkeysym2ucs4, so its unicode code point was mapped to 0. Map it to tab (9). --- platforms/unix/vm-display-X11/sqUnixX11.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/platforms/unix/vm-display-X11/sqUnixX11.c b/platforms/unix/vm-display-X11/sqUnixX11.c index 30d616216c..79e4ece0f0 100644 --- a/platforms/unix/vm-display-X11/sqUnixX11.c +++ b/platforms/unix/vm-display-X11/sqUnixX11.c @@ -2417,7 +2417,10 @@ static int xkeysym2ucs4(KeySym keysym) return keysym & 0x007f; if (keysym == XK_KP_Equal) return XK_equal; - +# if defined(XK_ISO_Left_Tab) + if (keysym == XK_ISO_Left_Tab) /* make shift-tab work */ + return 9; +#endif /* explicitly mapped */ #define map(lo, hi) if (keysym >= 0x##lo && keysym <= 0x##hi) return ucs4_##lo##_##hi[keysym - 0x##lo];