diff options
Diffstat (limited to 'packages/xorg-xserver/xserver-kdrive-1.4.2/linux-keyboard-mediumraw.patch')
-rw-r--r-- | packages/xorg-xserver/xserver-kdrive-1.4.2/linux-keyboard-mediumraw.patch | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/packages/xorg-xserver/xserver-kdrive-1.4.2/linux-keyboard-mediumraw.patch b/packages/xorg-xserver/xserver-kdrive-1.4.2/linux-keyboard-mediumraw.patch deleted file mode 100644 index 36d2f8eae8..0000000000 --- a/packages/xorg-xserver/xserver-kdrive-1.4.2/linux-keyboard-mediumraw.patch +++ /dev/null @@ -1,44 +0,0 @@ -Index: git/hw/kdrive/linux/keyboard.c -=================================================================== ---- git.orig/hw/kdrive/linux/keyboard.c 2007-11-14 21:30:45.000000000 +0000 -+++ git/hw/kdrive/linux/keyboard.c 2007-11-15 12:00:11.000000000 +0000 -@@ -42,6 +42,8 @@ - #include <sys/ioctl.h> - - extern int LinuxConsoleFd; -+static unsigned char mediumraw_data, mediumraw_up; -+static enum { DEFAULT, EXTBYTE1, EXTBYTE2 } mediumraw_state = DEFAULT; - - static const KeySym linux_to_x[256] = { - NoSymbol, NoSymbol, NoSymbol, NoSymbol, -@@ -701,7 +703,29 @@ - else - #endif - scancode = b[0] & 0x7f; -- KdEnqueueKeyboardEvent (closure, scancode, b[0] & 0x80); -+ /* This is extended medium raw mode interpreter -+ see linux/drivers/keyboard.c (kbd->kbdmode == VC_MEDIUMRAW) */ -+ switch (mediumraw_state) -+ { -+ case DEFAULT: -+ if (scancode == 0) -+ { -+ mediumraw_state = EXTBYTE1; -+ mediumraw_up = b[0] & 0x80; -+ } -+ else -+ KdEnqueueKeyboardEvent (closure, scancode, b[0] & 0x80); -+ break; -+ case EXTBYTE1: -+ mediumraw_data = scancode; -+ mediumraw_state = EXTBYTE2; -+ break; -+ case EXTBYTE2: -+ /* Note: Only codes < 256 will pass correctly through KdEnqueueKeyboardEvent() */ -+ KdEnqueueKeyboardEvent (closure, (int)mediumraw_data << 7 | scancode, mediumraw_up); -+ mediumraw_state = DEFAULT; -+ break; -+ } - b++; - } - } |