diff options
Diffstat (limited to 'xc/programs/Xserver/hw/xfree86/common/xf86Events.c')
-rw-r--r-- | xc/programs/Xserver/hw/xfree86/common/xf86Events.c | 48 |
1 files changed, 29 insertions, 19 deletions
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Events.c b/xc/programs/Xserver/hw/xfree86/common/xf86Events.c index ea6d47781..6df1e19d4 100644 --- a/xc/programs/Xserver/hw/xfree86/common/xf86Events.c +++ b/xc/programs/Xserver/hw/xfree86/common/xf86Events.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Events.c,v 3.94 2000/05/18 23:21:33 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Events.c,v 3.97 2000/08/11 19:51:03 dawes Exp $ */ /* * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. * @@ -296,7 +296,7 @@ ProcessInputEvents () extern u_char SpecialServerMap[]; #endif /* ASSUME_CUSTOM_KEYCODES */ -#if !defined(__EMX__) && !defined(SOL8) +#if !defined(__EMX__) && !defined(__SOL8__) && !defined(__CYGWIN__) void xf86PostKbdEvent(unsigned key) { @@ -339,7 +339,7 @@ xf86PostKbdEvent(unsigned key) goto special; #endif /* __sparc__ */ -#if defined (i386) && defined (SVR4) && !defined (PC98) +#if defined (i386) && defined (SVR4) /* * PANIX returns DICOP standards based keycodes in using 106jp * keyboard. We need to remap some keys. @@ -374,8 +374,6 @@ xf86PostKbdEvent(unsigned key) if (xf86Info.scanPrefix == 0) { switch (scanCode) { - -#ifndef PC98 case KEY_Prefix0: case KEY_Prefix1: #if defined(PCCONS_SUPPORT) || defined(SYSCONS_SUPPORT) || defined(PCVT_SUPPORT) @@ -388,11 +386,9 @@ xf86PostKbdEvent(unsigned key) } break; #endif -#endif /* not PC98 */ } } -#ifndef PC98 else if ( #ifdef CSRG_BASED (xf86Info.consType == PCCONS || xf86Info.consType == SYSCONS @@ -458,7 +454,6 @@ xf86PostKbdEvent(unsigned key) if (scanCode != KEY_NumLock) return; scanCode = KEY_Pause; /* pause */ } -#endif /* not PC98 */ #endif /* !ASSUME_CUSTOM_KEYCODES */ /* @@ -471,6 +466,27 @@ xf86PostKbdEvent(unsigned key) specialkey = scanCode; #endif /* ASSUME_CUSTOM_KEYCODES */ + if (xf86IsPc98()) { + switch (scanCode) { + case 0x0e: specialkey = 0x0e; break; /* KEY_BackSpace */ + case 0x40: specialkey = 0x4a; break; /* KEY_KP_Minus */ + case 0x49: specialkey = 0x4e; break; /* KEY_KP_Plus */ + case 0x62: specialkey = 0x3b; break; /* KEY_F1 */ + case 0x63: specialkey = 0x3c; break; /* KEY_F2 */ + case 0x64: specialkey = 0x3d; break; /* KEY_F3 */ + case 0x65: specialkey = 0x3e; break; /* KEY_F4 */ + case 0x66: specialkey = 0x3f; break; /* KEY_F5 */ + case 0x67: specialkey = 0x40; break; /* KEY_F6 */ + case 0x68: specialkey = 0x41; break; /* KEY_F7 */ + case 0x69: specialkey = 0x42; break; /* KEY_F8 */ + case 0x6a: specialkey = 0x43; break; /* KEY_F9 */ + case 0x6b: specialkey = 0x44; break; /* KEY_F10 */ + /* case 0x73: specialkey = 0x38; break; KEY_Alt */ + /* case 0x74: specialkey = 0x1d; break; KEY_LCtrl */ + default: specialkey = 0x00; break; + } + } + #if defined (__sparc__) special: if (kbdSun) { @@ -704,17 +720,13 @@ special: /* Ignore these keys -- ie don't let them cancel an alt-sysreq */ case KEY_Alt: -#ifndef PC98 case KEY_AltLang: -#endif /* not PC98 */ break; -#ifndef PC98 case KEY_SysReqest: if (down && (ModifierDown(AltMask) || ModifierDown(AltLangMask))) VTSysreqToggle = TRUE; break; -#endif /* not PC98 */ default: if (VTSysreqToggle) @@ -822,7 +834,6 @@ special: * ignore releases, toggle on & off on presses. * Don't deal with the Caps_Lock keysym directly, but check the lock modifier */ -#ifndef PC98 if (keyc->modifierMap[keycode] & LockMask || keysym[0] == XK_Scroll_Lock || keysym[1] == XF86XK_ModeLock || @@ -844,14 +855,13 @@ special: if (keysym[1] == XF86XK_ModeLock) xf86Info.modeSwitchLock = flag; updateLeds = TRUE; } -#endif /* not PC98 */ #ifndef ASSUME_CUSTOM_KEYCODES /* * normal, non-keypad keys */ if (scanCode < KEY_KP_7 || scanCode > KEY_KP_Decimal) { -#if !defined(CSRG_BASED) && !defined(MACH386) && !defined(MINIX) && !defined(__OSF__) && !defined(__GNU__) +#if !defined(CSRG_BASED) && !defined(MACH386) && !defined(MINIX) && !defined(__OSF__) && !defined(__GNU__) && !defined(__CYGWIN__) /* * magic ALT_L key on AT84 keyboards for multilingual support */ @@ -918,7 +928,7 @@ special: void xf86Wakeup(pointer blockData, int err, pointer pReadmask) { -#if !defined(__EMX__) && !defined(__QNX__) +#if !defined(__EMX__) && !defined(__QNX__) && !defined(__CYGWIN__) #ifdef __OSF__ fd_set kbdDevices; fd_set mseDevices; @@ -1110,7 +1120,7 @@ xf86VTSwitch() for (i = 0; i < xf86NumScreens; i++) { xf86Screens[i]->LeaveVT(i, 0); } -#ifndef __EMX__ +#if !defined(__EMX__) && !defined(__CYGWIN__) DisableDevice((DeviceIntPtr)xf86Info.pKeyboard); pInfo = xf86InputDevs; while (pInfo) { @@ -1146,7 +1156,7 @@ xf86VTSwitch() } SaveScreens(SCREEN_SAVER_FORCER, ScreenSaverReset); -#ifndef __EMX__ +#if !defined(__EMX__) && !defined(__CYGWIN__) EnableDevice((DeviceIntPtr)xf86Info.pKeyboard); pInfo = xf86InputDevs; while (pInfo) { @@ -1196,7 +1206,7 @@ xf86VTSwitch() /* Turn screen saver off when switching back */ SaveScreens(SCREEN_SAVER_FORCER,ScreenSaverReset); -#ifndef __EMX__ +#if !defined(__EMX__) && !defined(__CYGWIN__) EnableDevice((DeviceIntPtr)xf86Info.pKeyboard); pInfo = xf86InputDevs; while (pInfo) { |