Группа :: Система/X11
Пакет: xorg-x11
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: xorg-x11-6.8.2-cvs-keycode-translations.patch
Скачать
Скачать
--- xorg-x11-6.8.2/xc/programs/Xserver/hw/xfree86/input/keyboard/kbd.c 2005-04-28 17:57:18 +0400
+++ xorg-x11-6.8.1.99/xc/programs/Xserver/hw/xfree86/input/keyboard/kbd.c 2005-05-10 20:12:44 +0400
@@ -204,6 +204,10 @@
pInfo->type_name = XI_KEYBOARD;
pInfo->flags = XI86_KEYBOARD_CAPABLE;
pInfo->device_control = KbdProc;
+ /*
+ * We don't specify our own read_input function. We expect
+ * an OS specific readInput() function to handle this.
+ */
pInfo->read_input = NULL;
pInfo->motion_history_proc = NULL;
pInfo->history_size = 0;
@@ -537,6 +541,10 @@
unsigned long changeLock = 0;
static int lockkeys = 0;
+#ifdef DEBUG
+ ErrorF("kbd driver rec scancode: 0x02%x %s\n", scanCode, down?"down":"up");
+#endif
+
/* Disable any keyboard processing while in suspend */
if (xf86inSuspend)
return;
@@ -596,10 +604,12 @@
* they need to get the same key code as the base key on the same
* physical keyboard key.
*/
- if (scanCode == KEY_SysReqest)
- scanCode = KEY_Print;
- else if (scanCode == KEY_Break)
- scanCode = KEY_Pause;
+ if (!xf86IsPc98()) {
+ if (ModifierDown(AltMask) && (scanCode == KEY_SysReqest))
+ scanCode = KEY_Print;
+ else if (scanCode == KEY_Break)
+ scanCode = KEY_Pause;
+ }
#endif
/*
--- xorg-x11-6.8.2/xc/programs/Xserver/hw/xfree86/os-support/shared/at_scancode.c 2005-04-28 17:57:33 +0400
+++ xorg-x11-6.8.1.99/xc/programs/Xserver/hw/xfree86/os-support/shared/at_scancode.c 2005-05-10 20:12:47 +0400
@@ -43,6 +43,9 @@
case KEY_Prefix1:
pKbd->scanPrefix = *scanCode; /* special prefixes */
return TRUE;
+ }
+ if (!xf86IsPc98()) {
+ switch (*scanCode) {
case 0x59: *scanCode = KEY_0x59; break;
case 0x5a: *scanCode = KEY_0x5A; break;
case 0x5b: *scanCode = KEY_0x5B; break;
@@ -71,6 +74,7 @@
case 0x74: *scanCode = KEY_0x74; break;
case 0x75: *scanCode = KEY_0x75; break;
case 0x76: *scanCode = KEY_0x76; break;
+ }
}
break;
case KEY_Prefix0: