mirror of
https://github.com/reactos/reactos.git
synced 2024-07-11 15:15:27 +00:00
[WIN32K]
- Rename gKeyStateTable to gafAsyncKeyState: it's a proper name - Fix accelerators regression svn path=/trunk/; revision=54058
This commit is contained in:
parent
79d4c34950
commit
8b395029ee
|
@ -56,4 +56,4 @@ VOID FASTCALL DoTheScreenSaver(VOID);
|
||||||
|
|
||||||
extern HANDLE ghKeyboardDevice;
|
extern HANDLE ghKeyboardDevice;
|
||||||
extern PTHREADINFO ptiRawInput;
|
extern PTHREADINFO ptiRawInput;
|
||||||
extern BYTE gKeyStateTable[0x100];
|
extern BYTE gafAsyncKeyState[0x100];
|
||||||
|
|
|
@ -110,7 +110,7 @@ co_IntTranslateAccelerator(
|
||||||
&MenuItem,
|
&MenuItem,
|
||||||
NULL);
|
NULL);
|
||||||
if (nPos != (UINT)-1)
|
if (nPos != (UINT)-1)
|
||||||
hSubMenu = MenuItem->hSubMenu;
|
hSubMenu = SubMenu->head.h;
|
||||||
else
|
else
|
||||||
hMenu = NULL;
|
hMenu = NULL;
|
||||||
}
|
}
|
||||||
|
@ -129,7 +129,7 @@ co_IntTranslateAccelerator(
|
||||||
&MenuItem,
|
&MenuItem,
|
||||||
NULL);
|
NULL);
|
||||||
if (nPos != (UINT)-1)
|
if (nPos != (UINT)-1)
|
||||||
hSubMenu = MenuItem->hSubMenu;
|
hSubMenu = SubMenu->head.h;
|
||||||
else
|
else
|
||||||
hMenu = NULL;
|
hMenu = NULL;
|
||||||
}
|
}
|
||||||
|
@ -138,7 +138,7 @@ co_IntTranslateAccelerator(
|
||||||
/* If this is a menu item, there is no capturing enabled and
|
/* If this is a menu item, there is no capturing enabled and
|
||||||
window is not disabled, send WM_INITMENU */
|
window is not disabled, send WM_INITMENU */
|
||||||
if (hMenu && !IntGetCaptureWindow())
|
if (hMenu && !IntGetCaptureWindow())
|
||||||
{
|
{
|
||||||
co_IntSendMessage(hWnd, WM_INITMENU, (WPARAM)hMenu, 0L);
|
co_IntSendMessage(hWnd, WM_INITMENU, (WPARAM)hMenu, 0L);
|
||||||
if (hSubMenu)
|
if (hSubMenu)
|
||||||
{
|
{
|
||||||
|
@ -154,7 +154,7 @@ co_IntTranslateAccelerator(
|
||||||
- this is window menu and window is minimized */
|
- this is window menu and window is minimized */
|
||||||
if (!(Window->style & WS_DISABLED) &&
|
if (!(Window->style & WS_DISABLED) &&
|
||||||
!(hMenu && IntGetMenuState(hMenu, pAccel->cmd, MF_BYCOMMAND) & (MF_DISABLED|MF_GRAYED)) &&
|
!(hMenu && IntGetMenuState(hMenu, pAccel->cmd, MF_BYCOMMAND) & (MF_DISABLED|MF_GRAYED)) &&
|
||||||
!(hMenu && hMenu == (HMENU)Window->IDMenu && !(Window->style & WS_MINIMIZED)))
|
!(hMenu && hMenu == (HMENU)Window->IDMenu && (Window->style & WS_MINIMIZED)))
|
||||||
{
|
{
|
||||||
/* If this is system menu item, send WM_SYSCOMMAND, otherwise send WM_COMMAND */
|
/* If this is system menu item, send WM_SYSCOMMAND, otherwise send WM_COMMAND */
|
||||||
if (hMenu && hMenu == Window->SystemMenu)
|
if (hMenu && hMenu == Window->SystemMenu)
|
||||||
|
@ -426,8 +426,7 @@ NtUserTranslateAccelerator(
|
||||||
{
|
{
|
||||||
if (co_IntTranslateAccelerator(Window, &Message, &Accel->Table[i]))
|
if (co_IntTranslateAccelerator(Window, &Message, &Accel->Table[i]))
|
||||||
{
|
{
|
||||||
TRACE("NtUserTranslateAccelerator returns 1\n");
|
RETURN( 1);
|
||||||
RETURN( 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Undocumented feature... */
|
/* Undocumented feature... */
|
||||||
|
@ -441,7 +440,7 @@ CLEANUP:
|
||||||
if (Window) UserDerefObjectCo(Window);
|
if (Window) UserDerefObjectCo(Window);
|
||||||
if (Accel) UserDerefObjectCo(Accel);
|
if (Accel) UserDerefObjectCo(Accel);
|
||||||
|
|
||||||
TRACE("NtUserTranslateAccelerator returns 0\n");
|
TRACE("NtUserTranslateAccelerator returns %d\n", _ret_);
|
||||||
UserLeave();
|
UserLeave();
|
||||||
END_CLEANUP;
|
END_CLEANUP;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
#include <win32k.h>
|
#include <win32k.h>
|
||||||
DBG_DEFAULT_CHANNEL(UserInput);
|
DBG_DEFAULT_CHANNEL(UserInput);
|
||||||
|
|
||||||
extern BYTE gKeyStateTable[];
|
|
||||||
extern NTSTATUS Win32kInitWin32Thread(PETHREAD Thread);
|
extern NTSTATUS Win32kInitWin32Thread(PETHREAD Thread);
|
||||||
extern PPROCESSINFO ppiScrnSaver;
|
extern PPROCESSINFO ppiScrnSaver;
|
||||||
|
|
||||||
|
@ -684,12 +683,12 @@ IntMouseInput(MOUSEINPUT *mi, BOOL Injected)
|
||||||
Msg.lParam = MAKELPARAM(MousePos.x, MousePos.y);
|
Msg.lParam = MAKELPARAM(MousePos.x, MousePos.y);
|
||||||
Msg.pt = MousePos;
|
Msg.pt = MousePos;
|
||||||
|
|
||||||
if (gKeyStateTable[VK_SHIFT] & KS_DOWN_BIT)
|
if (gafAsyncKeyState[VK_SHIFT] & KS_DOWN_BIT)
|
||||||
{
|
{
|
||||||
Msg.wParam |= MK_SHIFT;
|
Msg.wParam |= MK_SHIFT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gKeyStateTable[VK_CONTROL] & KS_DOWN_BIT)
|
if (gafAsyncKeyState[VK_CONTROL] & KS_DOWN_BIT)
|
||||||
{
|
{
|
||||||
Msg.wParam |= MK_CONTROL;
|
Msg.wParam |= MK_CONTROL;
|
||||||
}
|
}
|
||||||
|
@ -700,7 +699,7 @@ IntMouseInput(MOUSEINPUT *mi, BOOL Injected)
|
||||||
}
|
}
|
||||||
if(mi->dwFlags & MOUSEEVENTF_LEFTDOWN)
|
if(mi->dwFlags & MOUSEEVENTF_LEFTDOWN)
|
||||||
{
|
{
|
||||||
gKeyStateTable[VK_LBUTTON] |= KS_DOWN_BIT;
|
gafAsyncKeyState[VK_LBUTTON] |= KS_DOWN_BIT;
|
||||||
Msg.message = SwapBtnMsg[0][SwapButtons];
|
Msg.message = SwapBtnMsg[0][SwapButtons];
|
||||||
CurInfo->ButtonsDown |= SwapBtn[SwapButtons];
|
CurInfo->ButtonsDown |= SwapBtn[SwapButtons];
|
||||||
Msg.wParam |= CurInfo->ButtonsDown;
|
Msg.wParam |= CurInfo->ButtonsDown;
|
||||||
|
@ -708,7 +707,7 @@ IntMouseInput(MOUSEINPUT *mi, BOOL Injected)
|
||||||
}
|
}
|
||||||
else if(mi->dwFlags & MOUSEEVENTF_LEFTUP)
|
else if(mi->dwFlags & MOUSEEVENTF_LEFTUP)
|
||||||
{
|
{
|
||||||
gKeyStateTable[VK_LBUTTON] &= ~KS_DOWN_BIT;
|
gafAsyncKeyState[VK_LBUTTON] &= ~KS_DOWN_BIT;
|
||||||
Msg.message = SwapBtnMsg[1][SwapButtons];
|
Msg.message = SwapBtnMsg[1][SwapButtons];
|
||||||
CurInfo->ButtonsDown &= ~SwapBtn[SwapButtons];
|
CurInfo->ButtonsDown &= ~SwapBtn[SwapButtons];
|
||||||
Msg.wParam |= CurInfo->ButtonsDown;
|
Msg.wParam |= CurInfo->ButtonsDown;
|
||||||
|
@ -716,7 +715,7 @@ IntMouseInput(MOUSEINPUT *mi, BOOL Injected)
|
||||||
}
|
}
|
||||||
if(mi->dwFlags & MOUSEEVENTF_MIDDLEDOWN)
|
if(mi->dwFlags & MOUSEEVENTF_MIDDLEDOWN)
|
||||||
{
|
{
|
||||||
gKeyStateTable[VK_MBUTTON] |= KS_DOWN_BIT;
|
gafAsyncKeyState[VK_MBUTTON] |= KS_DOWN_BIT;
|
||||||
Msg.message = WM_MBUTTONDOWN;
|
Msg.message = WM_MBUTTONDOWN;
|
||||||
CurInfo->ButtonsDown |= MK_MBUTTON;
|
CurInfo->ButtonsDown |= MK_MBUTTON;
|
||||||
Msg.wParam |= CurInfo->ButtonsDown;
|
Msg.wParam |= CurInfo->ButtonsDown;
|
||||||
|
@ -724,7 +723,7 @@ IntMouseInput(MOUSEINPUT *mi, BOOL Injected)
|
||||||
}
|
}
|
||||||
else if(mi->dwFlags & MOUSEEVENTF_MIDDLEUP)
|
else if(mi->dwFlags & MOUSEEVENTF_MIDDLEUP)
|
||||||
{
|
{
|
||||||
gKeyStateTable[VK_MBUTTON] &= ~KS_DOWN_BIT;
|
gafAsyncKeyState[VK_MBUTTON] &= ~KS_DOWN_BIT;
|
||||||
Msg.message = WM_MBUTTONUP;
|
Msg.message = WM_MBUTTONUP;
|
||||||
CurInfo->ButtonsDown &= ~MK_MBUTTON;
|
CurInfo->ButtonsDown &= ~MK_MBUTTON;
|
||||||
Msg.wParam |= CurInfo->ButtonsDown;
|
Msg.wParam |= CurInfo->ButtonsDown;
|
||||||
|
@ -732,7 +731,7 @@ IntMouseInput(MOUSEINPUT *mi, BOOL Injected)
|
||||||
}
|
}
|
||||||
if(mi->dwFlags & MOUSEEVENTF_RIGHTDOWN)
|
if(mi->dwFlags & MOUSEEVENTF_RIGHTDOWN)
|
||||||
{
|
{
|
||||||
gKeyStateTable[VK_RBUTTON] |= KS_DOWN_BIT;
|
gafAsyncKeyState[VK_RBUTTON] |= KS_DOWN_BIT;
|
||||||
Msg.message = SwapBtnMsg[0][!SwapButtons];
|
Msg.message = SwapBtnMsg[0][!SwapButtons];
|
||||||
CurInfo->ButtonsDown |= SwapBtn[!SwapButtons];
|
CurInfo->ButtonsDown |= SwapBtn[!SwapButtons];
|
||||||
Msg.wParam |= CurInfo->ButtonsDown;
|
Msg.wParam |= CurInfo->ButtonsDown;
|
||||||
|
@ -740,7 +739,7 @@ IntMouseInput(MOUSEINPUT *mi, BOOL Injected)
|
||||||
}
|
}
|
||||||
else if(mi->dwFlags & MOUSEEVENTF_RIGHTUP)
|
else if(mi->dwFlags & MOUSEEVENTF_RIGHTUP)
|
||||||
{
|
{
|
||||||
gKeyStateTable[VK_RBUTTON] &= ~KS_DOWN_BIT;
|
gafAsyncKeyState[VK_RBUTTON] &= ~KS_DOWN_BIT;
|
||||||
Msg.message = SwapBtnMsg[1][!SwapButtons];
|
Msg.message = SwapBtnMsg[1][!SwapButtons];
|
||||||
CurInfo->ButtonsDown &= ~SwapBtn[!SwapButtons];
|
CurInfo->ButtonsDown &= ~SwapBtn[!SwapButtons];
|
||||||
Msg.wParam |= CurInfo->ButtonsDown;
|
Msg.wParam |= CurInfo->ButtonsDown;
|
||||||
|
@ -759,14 +758,14 @@ IntMouseInput(MOUSEINPUT *mi, BOOL Injected)
|
||||||
Msg.message = WM_XBUTTONDOWN;
|
Msg.message = WM_XBUTTONDOWN;
|
||||||
if(mi->mouseData & XBUTTON1)
|
if(mi->mouseData & XBUTTON1)
|
||||||
{
|
{
|
||||||
gKeyStateTable[VK_XBUTTON1] |= KS_DOWN_BIT;
|
gafAsyncKeyState[VK_XBUTTON1] |= KS_DOWN_BIT;
|
||||||
CurInfo->ButtonsDown |= MK_XBUTTON1;
|
CurInfo->ButtonsDown |= MK_XBUTTON1;
|
||||||
Msg.wParam = MAKEWPARAM(CurInfo->ButtonsDown, XBUTTON1);
|
Msg.wParam = MAKEWPARAM(CurInfo->ButtonsDown, XBUTTON1);
|
||||||
co_MsqInsertMouseMessage(&Msg, Injected, mi->dwExtraInfo, TRUE);
|
co_MsqInsertMouseMessage(&Msg, Injected, mi->dwExtraInfo, TRUE);
|
||||||
}
|
}
|
||||||
if(mi->mouseData & XBUTTON2)
|
if(mi->mouseData & XBUTTON2)
|
||||||
{
|
{
|
||||||
gKeyStateTable[VK_XBUTTON2] |= KS_DOWN_BIT;
|
gafAsyncKeyState[VK_XBUTTON2] |= KS_DOWN_BIT;
|
||||||
CurInfo->ButtonsDown |= MK_XBUTTON2;
|
CurInfo->ButtonsDown |= MK_XBUTTON2;
|
||||||
Msg.wParam = MAKEWPARAM(CurInfo->ButtonsDown, XBUTTON2);
|
Msg.wParam = MAKEWPARAM(CurInfo->ButtonsDown, XBUTTON2);
|
||||||
co_MsqInsertMouseMessage(&Msg, Injected, mi->dwExtraInfo, TRUE);
|
co_MsqInsertMouseMessage(&Msg, Injected, mi->dwExtraInfo, TRUE);
|
||||||
|
@ -777,14 +776,14 @@ IntMouseInput(MOUSEINPUT *mi, BOOL Injected)
|
||||||
Msg.message = WM_XBUTTONUP;
|
Msg.message = WM_XBUTTONUP;
|
||||||
if(mi->mouseData & XBUTTON1)
|
if(mi->mouseData & XBUTTON1)
|
||||||
{
|
{
|
||||||
gKeyStateTable[VK_XBUTTON1] &= ~KS_DOWN_BIT;
|
gafAsyncKeyState[VK_XBUTTON1] &= ~KS_DOWN_BIT;
|
||||||
CurInfo->ButtonsDown &= ~MK_XBUTTON1;
|
CurInfo->ButtonsDown &= ~MK_XBUTTON1;
|
||||||
Msg.wParam = MAKEWPARAM(CurInfo->ButtonsDown, XBUTTON1);
|
Msg.wParam = MAKEWPARAM(CurInfo->ButtonsDown, XBUTTON1);
|
||||||
co_MsqInsertMouseMessage(&Msg, Injected, mi->dwExtraInfo, TRUE);
|
co_MsqInsertMouseMessage(&Msg, Injected, mi->dwExtraInfo, TRUE);
|
||||||
}
|
}
|
||||||
if(mi->mouseData & XBUTTON2)
|
if(mi->mouseData & XBUTTON2)
|
||||||
{
|
{
|
||||||
gKeyStateTable[VK_XBUTTON2] &= ~KS_DOWN_BIT;
|
gafAsyncKeyState[VK_XBUTTON2] &= ~KS_DOWN_BIT;
|
||||||
CurInfo->ButtonsDown &= ~MK_XBUTTON2;
|
CurInfo->ButtonsDown &= ~MK_XBUTTON2;
|
||||||
Msg.wParam = MAKEWPARAM(CurInfo->ButtonsDown, XBUTTON2);
|
Msg.wParam = MAKEWPARAM(CurInfo->ButtonsDown, XBUTTON2);
|
||||||
co_MsqInsertMouseMessage(&Msg, Injected, mi->dwExtraInfo, TRUE);
|
co_MsqInsertMouseMessage(&Msg, Injected, mi->dwExtraInfo, TRUE);
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#include <win32k.h>
|
#include <win32k.h>
|
||||||
DBG_DEFAULT_CHANNEL(UserKbd);
|
DBG_DEFAULT_CHANNEL(UserKbd);
|
||||||
|
|
||||||
BYTE gKeyStateTable[0x100];
|
BYTE gafAsyncKeyState[0x100];
|
||||||
static PKEYBOARD_INDICATOR_TRANSLATION gpKeyboardIndicatorTrans = NULL;
|
static PKEYBOARD_INDICATOR_TRANSLATION gpKeyboardIndicatorTrans = NULL;
|
||||||
|
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
@ -25,7 +25,7 @@ NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
InitKeyboardImpl(VOID)
|
InitKeyboardImpl(VOID)
|
||||||
{
|
{
|
||||||
RtlZeroMemory(&gKeyStateTable, sizeof(gKeyStateTable));
|
RtlZeroMemory(&gafAsyncKeyState, sizeof(gafAsyncKeyState));
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -636,9 +636,9 @@ IntGetAsyncKeyState(DWORD dwKey)
|
||||||
|
|
||||||
if (dwKey < 0x100)
|
if (dwKey < 0x100)
|
||||||
{
|
{
|
||||||
if (gKeyStateTable[dwKey] & KS_DOWN_BIT)
|
if (gafAsyncKeyState[dwKey] & KS_DOWN_BIT)
|
||||||
dwRet |= 0xFFFF8000; // If down, windows returns 0xFFFF8000.
|
dwRet |= 0xFFFF8000; // If down, windows returns 0xFFFF8000.
|
||||||
if (gKeyStateTable[dwKey] & KS_LOCK_BIT)
|
if (gafAsyncKeyState[dwKey] & KS_LOCK_BIT)
|
||||||
dwRet |= 0x1;
|
dwRet |= 0x1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -783,20 +783,20 @@ UserSendKeyboardInput(KEYBDINPUT *pKbdInput, BOOL bInjected)
|
||||||
/* Get virtual key without shifts (VK_(L|R)* -> VK_*) */
|
/* Get virtual key without shifts (VK_(L|R)* -> VK_*) */
|
||||||
wSimpleVk = IntSimplifyVk(wVk);
|
wSimpleVk = IntSimplifyVk(wVk);
|
||||||
wVkOtherSide = IntGetVkOtherSide(wVk);
|
wVkOtherSide = IntGetVkOtherSide(wVk);
|
||||||
PrevKeyState = gKeyStateTable[wSimpleVk];
|
PrevKeyState = gafAsyncKeyState[wSimpleVk];
|
||||||
|
|
||||||
/* Update global keyboard state. Begin from lock bit */
|
/* Update global keyboard state. Begin from lock bit */
|
||||||
if (!bKeyUp && !(PrevKeyState & KS_DOWN_BIT))
|
if (!bKeyUp && !(PrevKeyState & KS_DOWN_BIT))
|
||||||
gKeyStateTable[wVk] ^= KS_LOCK_BIT;
|
gafAsyncKeyState[wVk] ^= KS_LOCK_BIT;
|
||||||
|
|
||||||
/* Update down bit */
|
/* Update down bit */
|
||||||
if (bKeyUp)
|
if (bKeyUp)
|
||||||
gKeyStateTable[wVk] &= ~KS_DOWN_BIT;
|
gafAsyncKeyState[wVk] &= ~KS_DOWN_BIT;
|
||||||
else
|
else
|
||||||
gKeyStateTable[wVk] |= KS_DOWN_BIT;
|
gafAsyncKeyState[wVk] |= KS_DOWN_BIT;
|
||||||
|
|
||||||
/* Update key without shifts */
|
/* Update key without shifts */
|
||||||
gKeyStateTable[wSimpleVk] = gKeyStateTable[wVk] | gKeyStateTable[wVkOtherSide];
|
gafAsyncKeyState[wSimpleVk] = gafAsyncKeyState[wVk] | gafAsyncKeyState[wVkOtherSide];
|
||||||
|
|
||||||
if (!bKeyUp)
|
if (!bKeyUp)
|
||||||
{
|
{
|
||||||
|
@ -806,7 +806,7 @@ UserSendKeyboardInput(KEYBDINPUT *pKbdInput, BOOL bInjected)
|
||||||
if (gpKeyboardIndicatorTrans)
|
if (gpKeyboardIndicatorTrans)
|
||||||
IntKeyboardUpdateLeds(ghKeyboardDevice,
|
IntKeyboardUpdateLeds(ghKeyboardDevice,
|
||||||
wScanCode,
|
wScanCode,
|
||||||
gKeyStateTable[wSimpleVk] & KS_LOCK_BIT,
|
gafAsyncKeyState[wSimpleVk] & KS_LOCK_BIT,
|
||||||
gpKeyboardIndicatorTrans);
|
gpKeyboardIndicatorTrans);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -818,12 +818,12 @@ UserSendKeyboardInput(KEYBDINPUT *pKbdInput, BOOL bInjected)
|
||||||
{
|
{
|
||||||
if (wVk == VK_LWIN || wVk == VK_RWIN)
|
if (wVk == VK_LWIN || wVk == VK_RWIN)
|
||||||
IntKeyboardSendWinKeyMsg();
|
IntKeyboardSendWinKeyMsg();
|
||||||
else if(wSimpleVk == VK_MENU && !(gKeyStateTable[VK_CONTROL] & KS_DOWN_BIT))
|
else if(wSimpleVk == VK_MENU && !(gafAsyncKeyState[VK_CONTROL] & KS_DOWN_BIT))
|
||||||
co_IntKeyboardSendAltKeyMsg();
|
co_IntKeyboardSendAltKeyMsg();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check if it is a hotkey */
|
/* Check if it is a hotkey */
|
||||||
fModifiers = IntGetModifiers(gKeyStateTable);
|
fModifiers = IntGetModifiers(gafAsyncKeyState);
|
||||||
if (GetHotKey(fModifiers, wSimpleVk, &Thread, &hWnd, &HotkeyId))
|
if (GetHotKey(fModifiers, wSimpleVk, &Thread, &hWnd, &HotkeyId))
|
||||||
{
|
{
|
||||||
if (!bKeyUp)
|
if (!bKeyUp)
|
||||||
|
@ -848,8 +848,8 @@ UserSendKeyboardInput(KEYBDINPUT *pKbdInput, BOOL bInjected)
|
||||||
wSysKey = (pKbdTbl->fLocaleFlags & KLLF_ALTGR) ? VK_LMENU : VK_MENU;
|
wSysKey = (pKbdTbl->fLocaleFlags & KLLF_ALTGR) ? VK_LMENU : VK_MENU;
|
||||||
if (wVk == VK_F10 ||
|
if (wVk == VK_F10 ||
|
||||||
//uVkNoShift == VK_MENU || // FIXME: If only LALT is pressed WM_SYSKEYUP is generated instead of WM_KEYUP
|
//uVkNoShift == VK_MENU || // FIXME: If only LALT is pressed WM_SYSKEYUP is generated instead of WM_KEYUP
|
||||||
((gKeyStateTable[wSysKey] & KS_DOWN_BIT) && // FIXME
|
((gafAsyncKeyState[wSysKey] & KS_DOWN_BIT) && // FIXME
|
||||||
!(gKeyStateTable[VK_CONTROL] & KS_DOWN_BIT)))
|
!(gafAsyncKeyState[VK_CONTROL] & KS_DOWN_BIT)))
|
||||||
{
|
{
|
||||||
if (bKeyUp)
|
if (bKeyUp)
|
||||||
Msg.message = WM_SYSKEYUP;
|
Msg.message = WM_SYSKEYUP;
|
||||||
|
@ -870,7 +870,7 @@ UserSendKeyboardInput(KEYBDINPUT *pKbdInput, BOOL bInjected)
|
||||||
{
|
{
|
||||||
if (bExt)
|
if (bExt)
|
||||||
Msg.lParam |= LP_EXT_BIT;
|
Msg.lParam |= LP_EXT_BIT;
|
||||||
if (gKeyStateTable[VK_MENU] & KS_DOWN_BIT)
|
if (gafAsyncKeyState[VK_MENU] & KS_DOWN_BIT)
|
||||||
Msg.lParam |= LP_CONTEXT_BIT;
|
Msg.lParam |= LP_CONTEXT_BIT;
|
||||||
if (PrevKeyState & KS_DOWN_BIT)
|
if (PrevKeyState & KS_DOWN_BIT)
|
||||||
Msg.lParam |= LP_PREV_STATE_BIT;
|
Msg.lParam |= LP_PREV_STATE_BIT;
|
||||||
|
@ -947,7 +947,7 @@ UserProcessKeyboardInput(
|
||||||
KEYBDINPUT KbdInput;
|
KEYBDINPUT KbdInput;
|
||||||
|
|
||||||
/* Support numlock */
|
/* Support numlock */
|
||||||
if ((wVk & KBDNUMPAD) && (gKeyStateTable[VK_NUMLOCK] & KS_LOCK_BIT))
|
if ((wVk & KBDNUMPAD) && (gafAsyncKeyState[VK_NUMLOCK] & KS_LOCK_BIT))
|
||||||
{
|
{
|
||||||
wVk = IntTranslateNumpadKey(wVk & 0xFF);
|
wVk = IntTranslateNumpadKey(wVk & 0xFF);
|
||||||
}
|
}
|
||||||
|
@ -1451,19 +1451,19 @@ UserGetMouseButtonsState(VOID)
|
||||||
|
|
||||||
if (gpsi->aiSysMet[SM_SWAPBUTTON])
|
if (gpsi->aiSysMet[SM_SWAPBUTTON])
|
||||||
{
|
{
|
||||||
if (gKeyStateTable[VK_RBUTTON] & KS_DOWN_BIT) ret |= MK_LBUTTON;
|
if (gafAsyncKeyState[VK_RBUTTON] & KS_DOWN_BIT) ret |= MK_LBUTTON;
|
||||||
if (gKeyStateTable[VK_LBUTTON] & KS_DOWN_BIT) ret |= MK_RBUTTON;
|
if (gafAsyncKeyState[VK_LBUTTON] & KS_DOWN_BIT) ret |= MK_RBUTTON;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gKeyStateTable[VK_LBUTTON] & KS_DOWN_BIT) ret |= MK_LBUTTON;
|
if (gafAsyncKeyState[VK_LBUTTON] & KS_DOWN_BIT) ret |= MK_LBUTTON;
|
||||||
if (gKeyStateTable[VK_RBUTTON] & KS_DOWN_BIT) ret |= MK_RBUTTON;
|
if (gafAsyncKeyState[VK_RBUTTON] & KS_DOWN_BIT) ret |= MK_RBUTTON;
|
||||||
}
|
}
|
||||||
if (gKeyStateTable[VK_MBUTTON] & KS_DOWN_BIT) ret |= MK_MBUTTON;
|
if (gafAsyncKeyState[VK_MBUTTON] & KS_DOWN_BIT) ret |= MK_MBUTTON;
|
||||||
if (gKeyStateTable[VK_SHIFT] & KS_DOWN_BIT) ret |= MK_SHIFT;
|
if (gafAsyncKeyState[VK_SHIFT] & KS_DOWN_BIT) ret |= MK_SHIFT;
|
||||||
if (gKeyStateTable[VK_CONTROL] & KS_DOWN_BIT) ret |= MK_CONTROL;
|
if (gafAsyncKeyState[VK_CONTROL] & KS_DOWN_BIT) ret |= MK_CONTROL;
|
||||||
if (gKeyStateTable[VK_XBUTTON1] & KS_DOWN_BIT) ret |= MK_XBUTTON1;
|
if (gafAsyncKeyState[VK_XBUTTON1] & KS_DOWN_BIT) ret |= MK_XBUTTON1;
|
||||||
if (gKeyStateTable[VK_XBUTTON2] & KS_DOWN_BIT) ret |= MK_XBUTTON2;
|
if (gafAsyncKeyState[VK_XBUTTON2] & KS_DOWN_BIT) ret |= MK_XBUTTON2;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1930,7 +1930,7 @@ MsqInitializeMessageQueue(struct _ETHREAD *Thread, PUSER_MESSAGE_QUEUE MessageQu
|
||||||
MessageQueue->NewMessagesHandle = NULL;
|
MessageQueue->NewMessagesHandle = NULL;
|
||||||
MessageQueue->ShowingCursor = 0;
|
MessageQueue->ShowingCursor = 0;
|
||||||
MessageQueue->CursorObject = NULL;
|
MessageQueue->CursorObject = NULL;
|
||||||
RtlCopyMemory(MessageQueue->KeyState, gKeyStateTable, sizeof(gKeyStateTable));
|
RtlCopyMemory(MessageQueue->KeyState, gafAsyncKeyState, sizeof(gafAsyncKeyState));
|
||||||
|
|
||||||
Status = ZwCreateEvent(&MessageQueue->NewMessagesHandle, EVENT_ALL_ACCESS,
|
Status = ZwCreateEvent(&MessageQueue->NewMessagesHandle, EVENT_ALL_ACCESS,
|
||||||
NULL, SynchronizationEvent, FALSE);
|
NULL, SynchronizationEvent, FALSE);
|
||||||
|
|
Loading…
Reference in a new issue