mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-01-29 19:20:28 +01:00
Properly pass Alt+Tab to X. Setup handling for VK_LWIN and VK_RWIN, but
these aren't in our modmap yet (XK_Super_L, XK_Super_R) nor are they in
our keymap yet, so pressing the Windows key still does nothing.
This commit is contained in:
parent
d60deb1bba
commit
43f87b4a0f
6 changed files with 62 additions and 299 deletions
|
|
@ -62,6 +62,7 @@ Bool g_fUseMsg = FALSE;
|
|||
DWORD g_dwCurrentThreadID = 0;
|
||||
Bool g_fKeyboardHookLL = FALSE;
|
||||
HHOOK g_hhookKeyboardLL = NULL;
|
||||
HWND g_hwndKeyboardFocus = NULL;
|
||||
|
||||
|
||||
/*
|
||||
|
|
@ -111,6 +112,7 @@ void
|
|||
winInitializeGlobals (void)
|
||||
{
|
||||
g_dwCurrentThreadID = GetCurrentThreadId ();
|
||||
g_hwndKeyboardFocus = NULL;
|
||||
#ifdef XWIN_CLIPBOARD
|
||||
g_fClipboardLaunched = FALSE;
|
||||
g_fClipboardStarted = FALSE;
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@
|
|||
#define XKB_IN_SERVER
|
||||
#include "XKBsrv.h"
|
||||
#endif
|
||||
#include "../../Xext/xf86miscproc.h"
|
||||
|
||||
static Bool g_winKeyState[NUM_KEYCODES];
|
||||
|
||||
|
|
@ -130,11 +129,18 @@ winGetKeyMappings (KeySymsPtr pKeySyms, CARD8 *pModMap)
|
|||
pModMap[i] = ScrollLockMask;
|
||||
break;
|
||||
|
||||
#if 0
|
||||
case XK_Super_L:
|
||||
case XK_Super_R:
|
||||
pModMap[i] = Mod4Mask;
|
||||
break;
|
||||
#else
|
||||
/* Hirigana/Katakana toggle */
|
||||
case XK_Kana_Lock:
|
||||
case XK_Kana_Shift:
|
||||
pModMap[i] = KanaMask;
|
||||
break;
|
||||
#endif
|
||||
|
||||
/* alternate toggle for multinational support */
|
||||
case XK_Mode_switch:
|
||||
|
|
@ -268,8 +274,6 @@ winKeybdProc (DeviceIntPtr pDeviceInt, int iState)
|
|||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
g_winInternalModeKeyStatesPtr = &(pDeviceInt->key->state);
|
||||
break;
|
||||
|
||||
|
|
@ -415,7 +419,7 @@ winIsFakeCtrl_L (UINT message, WPARAM wParam, LPARAM lParam)
|
|||
|
||||
/* Get time of current message */
|
||||
lTime = GetMessageTime ();
|
||||
|
||||
|
||||
/* Look for fake Ctrl_L preceeding an Alt_R press. */
|
||||
fReturn = PeekMessage (&msgNext, NULL,
|
||||
WM_KEYDOWN, WM_KEYDOWN,
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
|
||||
extern HHOOK g_hhookKeyboardLL;
|
||||
extern DWORD g_dwCurrentThreadID;
|
||||
extern HWND g_hwndKeyboardFocus;
|
||||
|
||||
|
||||
/*
|
||||
|
|
@ -47,6 +48,14 @@ static LRESULT CALLBACK
|
|||
winKeyboardMessageHookLL (int iCode, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
|
||||
#ifndef LLKHF_EXTENDED
|
||||
# define LLKHF_EXTENDED 0x00000001
|
||||
#endif
|
||||
#ifndef LLKHF_UP
|
||||
# define LLKHF_UP 0x00000080
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* KeyboardMessageHook
|
||||
*/
|
||||
|
|
@ -54,26 +63,53 @@ winKeyboardMessageHookLL (int iCode, WPARAM wParam, LPARAM lParam);
|
|||
static LRESULT CALLBACK
|
||||
winKeyboardMessageHookLL (int iCode, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
BOOL fEatKeystroke = FALSE;
|
||||
BOOL fPassKeystroke = FALSE;
|
||||
PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam;
|
||||
|
||||
/* Swallow keystrokes only for our app */
|
||||
/* Pass keystrokes on to our main message loop */
|
||||
if (iCode == HC_ACTION)
|
||||
{
|
||||
switch (wParam)
|
||||
{
|
||||
case WM_KEYDOWN: case WM_SYSKEYDOWN:
|
||||
case WM_KEYUP: case WM_SYSKEYUP:
|
||||
p = (PKBDLLHOOKSTRUCT) lParam;
|
||||
|
||||
fEatKeystroke =
|
||||
(p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0);
|
||||
fPassKeystroke =
|
||||
(p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0)
|
||||
|| (p->vkCode == VK_LWIN) || (p->vkCode == VK_RWIN);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return (fEatKeystroke ? 1 : CallNextHookEx (NULL, iCode, wParam,
|
||||
lParam));
|
||||
|
||||
/*
|
||||
* Pass message on to our main message loop.
|
||||
* We process this immediately with SendMessage so that the keystroke
|
||||
* appears in, hopefully, the correct order.
|
||||
*/
|
||||
if (fPassKeystroke)
|
||||
{
|
||||
LPARAM lParamKey = 0x0;
|
||||
|
||||
/* Construct the lParam from KBDLLHOOKSTRUCT */
|
||||
lParamKey = lParamKey | (0x0000FFFF & 0x00000001); /* Repeat count */
|
||||
lParamKey = lParamKey | (0x00FF0000 & (p->scanCode << 16));
|
||||
lParamKey = lParamKey
|
||||
| (0x01000000 & ((p->flags & LLKHF_EXTENDED) << 23));
|
||||
lParamKey = lParamKey
|
||||
| (0x20000000
|
||||
& ((p->flags & LLKHF_ALTDOWN) << 24));
|
||||
lParamKey = lParamKey | (0x80000000 & ((p->flags & LLKHF_UP) << 24));
|
||||
|
||||
/* Send message to our main window that has the keyboard focus */
|
||||
PostMessage (g_hwndKeyboardFocus,
|
||||
(UINT) wParam,
|
||||
(WPARAM) p->vkCode,
|
||||
lParamKey);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Call next hook */
|
||||
return CallNextHookEx (NULL, iCode, wParam, lParam);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@
|
|||
/* $XConsortium: xf86Keymap.h /main/14 1996/02/21 17:38:47 kaleb $ */
|
||||
|
||||
static KeySym map[NUM_KEYCODES * GLYPHS_PER_KEY] = {
|
||||
|
||||
#if !defined(__SOL8__) && (!defined(sun) || defined(i386))
|
||||
|
||||
/* 0x00 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x01 */ XK_Escape, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x02 */ XK_1, XK_exclam, NoSymbol, NoSymbol,
|
||||
|
|
@ -138,286 +135,4 @@ static KeySym map[NUM_KEYCODES * GLYPHS_PER_KEY] = {
|
|||
/* 0x7d */ XK_backslash, XK_bar, NoSymbol, NoSymbol,
|
||||
/* 0x7e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x7f */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
|
||||
#else /* SunOS */
|
||||
|
||||
/* Assumes a US English keyboard as default - sorry 'bout that
|
||||
*
|
||||
* Hopefully it'll be enough someone can have a sorta working
|
||||
* keyboard, if they're not using XKB
|
||||
*
|
||||
* DWH 9/12/99
|
||||
*/
|
||||
|
||||
/* 0x00 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x01 */ XK_quoteleft, XK_asciitilde, NoSymbol, NoSymbol,
|
||||
/* 0x02 */ XK_1, XK_exclam, NoSymbol, NoSymbol,
|
||||
/* 0x03 */ XK_2, XK_at, NoSymbol, NoSymbol,
|
||||
/* 0x04 */ XK_3, XK_numbersign, NoSymbol, NoSymbol,
|
||||
/* 0x05 */ XK_4, XK_dollar, NoSymbol, NoSymbol,
|
||||
/* 0x06 */ XK_5, XK_percent, NoSymbol, NoSymbol,
|
||||
/* 0x07 */ XK_6, XK_asciicircum, NoSymbol, NoSymbol,
|
||||
/* 0x08 */ XK_7, XK_ampersand, NoSymbol, NoSymbol,
|
||||
/* 0x09 */ XK_8, XK_asterisk, NoSymbol, NoSymbol,
|
||||
/* 0x0a */ XK_9, XK_parenleft, NoSymbol, NoSymbol,
|
||||
/* 0x0b */ XK_0, XK_parenright, NoSymbol, NoSymbol,
|
||||
/* 0x0c */ XK_minus, XK_underscore, NoSymbol, NoSymbol,
|
||||
/* 0x0d */ XK_equal, XK_plus, NoSymbol, NoSymbol,
|
||||
/* 0x0e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x0f */ XK_BackSpace, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x10 */ XK_Tab, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x11 */ XK_Q, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x12 */ XK_W, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x13 */ XK_E, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x14 */ XK_R, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x15 */ XK_T, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x16 */ XK_Y, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x17 */ XK_U, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x18 */ XK_I, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x19 */ XK_O, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x1a */ XK_P, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x1b */ XK_bracketleft, XK_braceleft, NoSymbol, NoSymbol,
|
||||
/* 0x1c */ XK_bracketright,XK_braceright, NoSymbol, NoSymbol,
|
||||
/* 0x1d */ XK_backslash, XK_bar, NoSymbol, NoSymbol,
|
||||
/* 0x1e */ XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x1f */ XK_A, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x20 */ XK_S, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x21 */ XK_D, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x22 */ XK_F, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x23 */ XK_G, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x24 */ XK_H, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x25 */ XK_J, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x26 */ XK_K, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x27 */ XK_L, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x28 */ XK_semicolon, XK_colon, NoSymbol, NoSymbol,
|
||||
/* 0x29 */ XK_quoteright, XK_quotedbl, NoSymbol, NoSymbol,
|
||||
/* 0x2a */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x2b */ XK_Return, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x2c */ XK_Shift_L, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x2d */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x2e */ XK_Z, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x2f */ XK_X, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x30 */ XK_C, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x31 */ XK_V, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x32 */ XK_B, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x33 */ XK_N, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x34 */ XK_M, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x35 */ XK_comma, XK_less, NoSymbol, NoSymbol,
|
||||
/* 0x36 */ XK_period, XK_greater, NoSymbol, NoSymbol,
|
||||
/* 0x37 */ XK_slash, XK_question, NoSymbol, NoSymbol,
|
||||
/* 0x38 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x39 */ XK_Shift_R, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x3a */ XK_Control_L, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x3b */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x3c */ XK_Alt_L, XK_Meta_L, NoSymbol, NoSymbol,
|
||||
/* 0x3d */ XK_space, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x3e */ XK_Alt_R, XK_Meta_R, NoSymbol, NoSymbol,
|
||||
/* 0x3f */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x40 */ XK_Control_R, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x41 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x42 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x43 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x44 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x45 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x46 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x47 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x48 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x49 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x4a */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x4b */ XK_Insert, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x4c */ XK_Delete, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x4d */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x4e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x4f */ XK_Left, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x50 */ XK_Home, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x51 */ XK_End, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x52 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x53 */ XK_Up, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x54 */ XK_Down, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x55 */ XK_Prior, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x56 */ XK_Next, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x57 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x58 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x59 */ XK_Right, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x5a */ XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x5b */ XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol,
|
||||
/* 0x5c */ XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol,
|
||||
/* 0x5d */ XK_KP_End, XK_KP_1, NoSymbol, NoSymbol,
|
||||
/* 0x5e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x5f */ XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x60 */ XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol,
|
||||
/* 0x61 */ NoSymbol, XK_KP_5, NoSymbol, NoSymbol,
|
||||
/* 0x62 */ XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol,
|
||||
/* 0x63 */ XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol,
|
||||
/* 0x64 */ XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x65 */ XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol,
|
||||
/* 0x66 */ XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol,
|
||||
/* 0x67 */ XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol,
|
||||
/* 0x68 */ XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol,
|
||||
/* 0x69 */ XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x6a */ XK_KP_Add, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x6b */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x6c */ XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x6d */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x6e */ XK_Escape, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x6f */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x70 */ XK_F1, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x71 */ XK_F2, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x72 */ XK_F3, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x73 */ XK_F4, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x74 */ XK_F5, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x75 */ XK_F6, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x76 */ XK_F7, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x77 */ XK_F8, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x78 */ XK_F9, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x79 */ XK_F10, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x7a */ XK_F11, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x7b */ XK_F12, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x7c */ XK_Print, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x7d */ XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x7e */ XK_Pause, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x7f */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
|
||||
#endif /* SunOS */
|
||||
|
||||
};
|
||||
|
||||
#if !defined(Lynx) && \
|
||||
!defined(__UNIXOS2__) && \
|
||||
!defined(__mips__) && \
|
||||
!defined(linux) && \
|
||||
!defined(CSRG_BASED) && \
|
||||
!defined(__CYGWIN__) && \
|
||||
!defined(__SOL8__) && \
|
||||
(!defined(sun) || defined(i386))
|
||||
|
||||
static KeySym map84[NUM_KEYCODES * GLYPHS_PER_KEY] = {
|
||||
/* 0x00 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x01 */ XK_Escape, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x02 */ XK_1, XK_exclam, NoSymbol, NoSymbol,
|
||||
/* 0x03 */ XK_2, XK_at, NoSymbol, NoSymbol,
|
||||
/* 0x04 */ XK_3, XK_numbersign, NoSymbol, NoSymbol,
|
||||
/* 0x05 */ XK_4, XK_dollar, NoSymbol, NoSymbol,
|
||||
/* 0x06 */ XK_5, XK_percent, NoSymbol, NoSymbol,
|
||||
/* 0x07 */ XK_6, XK_asciicircum, NoSymbol, NoSymbol,
|
||||
/* 0x08 */ XK_7, XK_ampersand, NoSymbol, NoSymbol,
|
||||
/* 0x09 */ XK_8, XK_asterisk, NoSymbol, NoSymbol,
|
||||
/* 0x0a */ XK_9, XK_parenleft, NoSymbol, NoSymbol,
|
||||
/* 0x0b */ XK_0, XK_parenright, NoSymbol, NoSymbol,
|
||||
/* 0x0c */ XK_minus, XK_underscore, NoSymbol, NoSymbol,
|
||||
/* 0x0d */ XK_equal, XK_plus, NoSymbol, NoSymbol,
|
||||
/* 0x0e */ XK_BackSpace, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x0f */ XK_Tab, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x10 */ XK_Q, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x11 */ XK_W, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x12 */ XK_E, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x13 */ XK_R, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x14 */ XK_T, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x15 */ XK_Y, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x16 */ XK_U, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x17 */ XK_I, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x18 */ XK_O, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x19 */ XK_P, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x1a */ XK_bracketleft, XK_braceleft, NoSymbol, NoSymbol,
|
||||
/* 0x1b */ XK_bracketright,XK_braceright, NoSymbol, NoSymbol,
|
||||
/* 0x1c */ XK_Return, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x1d */ XK_Control_L, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x1e */ XK_A, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x1f */ XK_S, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x20 */ XK_D, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x21 */ XK_F, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x22 */ XK_G, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x23 */ XK_H, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x24 */ XK_J, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x25 */ XK_K, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x26 */ XK_L, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x27 */ XK_semicolon, XK_colon, NoSymbol, NoSymbol,
|
||||
/* 0x28 */ XK_quoteright, XK_quotedbl, NoSymbol, NoSymbol,
|
||||
/* 0x29 */ XK_quoteleft, XK_asciitilde, NoSymbol, NoSymbol,
|
||||
/* 0x2a */ XK_Shift_L, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x2b */ XK_backslash, XK_bar, NoSymbol, NoSymbol,
|
||||
/* 0x2c */ XK_Z, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x2d */ XK_X, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x2e */ XK_C, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x2f */ XK_V, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x30 */ XK_B, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x31 */ XK_N, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x32 */ XK_M, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x33 */ XK_comma, XK_less, NoSymbol, NoSymbol,
|
||||
/* 0x34 */ XK_period, XK_greater, NoSymbol, NoSymbol,
|
||||
/* 0x35 */ XK_slash, XK_question, NoSymbol, NoSymbol,
|
||||
/* 0x36 */ XK_Shift_R, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x37 */ XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x38 */ XK_Alt_L, XK_Meta_L, NoSymbol, NoSymbol,
|
||||
/* 0x39 */ XK_space, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x3a */ XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x3b */ XK_F1, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x3c */ XK_F2, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x3d */ XK_F3, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x3e */ XK_F4, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x3f */ XK_F5, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x40 */ XK_F6, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x41 */ XK_F7, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x42 */ XK_F8, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x43 */ XK_F9, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x44 */ XK_F10, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x45 */ XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x46 */ XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x47 */ XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol,
|
||||
/* 0x48 */ XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol,
|
||||
/* 0x49 */ XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol,
|
||||
/* 0x4a */ XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x4b */ XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol,
|
||||
/* 0x4c */ NoSymbol, XK_KP_5, NoSymbol, NoSymbol,
|
||||
/* 0x4d */ XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol,
|
||||
/* 0x4e */ XK_KP_Add, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x4f */ XK_KP_End, XK_KP_1, NoSymbol, NoSymbol,
|
||||
/* 0x50 */ XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol,
|
||||
/* 0x51 */ XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol,
|
||||
/* 0x52 */ XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol,
|
||||
/* 0x53 */ XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol,
|
||||
/* 0x54 */ XK_Sys_Req, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x55 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x56 */ XK_less, XK_greater, NoSymbol, NoSymbol,
|
||||
/* 0x57 */ XK_F11, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x58 */ XK_F12, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x59 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x5a */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x5b */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x5c */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x5d */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x5e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x5f */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x60 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x61 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x62 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x63 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x64 */ XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x65 */ XK_Control_R, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x66 */ XK_Pause, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x67 */ XK_Print, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x68 */ XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x69 */ XK_Alt_R, XK_Meta_R, NoSymbol, NoSymbol,
|
||||
/* 0x6a */ XK_Break, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x6b */ XK_Meta_L, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x6c */ XK_Meta_R, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x6d */ XK_Menu, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x6e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x6f */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x70 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x71 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x72 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x73 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x74 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x75 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x76 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x77 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x78 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x79 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x7a */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x7b */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x7c */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x7d */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
/* 0x7e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
};
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@
|
|||
#define XK_TECHNICAL
|
||||
#define XK_KATAKANA
|
||||
#include "keysym.h"
|
||||
#include "XF86keysym.h"
|
||||
|
||||
#define GLYPHS_PER_KEY 4
|
||||
#define NUM_KEYCODES 248
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ Bool g_fCursor = TRUE;
|
|||
extern Bool g_fClipboard;
|
||||
extern HWND g_hDlgDepthChange;
|
||||
extern Bool g_fKeyboardHookLL;
|
||||
extern HWND g_hwndKeyboardFocus;
|
||||
|
||||
|
||||
/*
|
||||
|
|
@ -912,6 +913,9 @@ winWindowProc (HWND hwnd, UINT message,
|
|||
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
|
||||
break;
|
||||
|
||||
/* Save handle of our main window that last received focus */
|
||||
g_hwndKeyboardFocus = hwnd;
|
||||
|
||||
/* Restore the state of all mode keys */
|
||||
winRestoreModeKeyStates ();
|
||||
|
||||
|
|
@ -924,6 +928,9 @@ winWindowProc (HWND hwnd, UINT message,
|
|||
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
|
||||
break;
|
||||
|
||||
/* Clear handle of our main window that last received focus */
|
||||
g_hwndKeyboardFocus = NULL;
|
||||
|
||||
/* Release any pressed keys */
|
||||
winKeybdReleaseKeys ();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue