From 1e14429f4782625ed4ea12edfbd2dfc58da1034e Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Tue, 24 Feb 2015 14:21:47 +0100 Subject: [PATCH] kbdfs: work arround qemu qemu does not send e0 escape for gray (arrow) keys, no matter the numlock state. as a work arround, we assume gray key when numlock is not active. --- sys/src/cmd/aux/kbdfs/kbdfs.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/src/cmd/aux/kbdfs/kbdfs.c b/sys/src/cmd/aux/kbdfs/kbdfs.c index 19cb130c6..0f659f8bd 100644 --- a/sys/src/cmd/aux/kbdfs/kbdfs.c +++ b/sys/src/cmd/aux/kbdfs/kbdfs.c @@ -291,6 +291,10 @@ kbdputsc(Scan *scan, int c) if(c >= Nscan) return; + /* qemu workarround: emulate e0 for numpad */ + if(c != 0 && strchr("GHIKMOPQRS", c) != nil) + scan->esc1 |= !scan->num; + if(scan->esc1 && scan->ctl && kbtabctrlesc1[c] != 0) key.r = kbtabctrlesc1[c]; else if(scan->esc1 && scan->shift && kbtabshiftesc1[c] != 0)