mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 19:26:32 +00:00
Release keyboard modifiers in KeybardThreadMain on KEY_BREAK. Fixes bug 2751. I think the whole handling of modifiers is still pretty hackish and could need some improvement.
See issue #2751 for more details. svn path=/trunk/; revision=30449
This commit is contained in:
@@ -586,8 +586,8 @@ KeyboardThreadMain(PVOID StartContext)
|
||||
return; //(Status);
|
||||
}
|
||||
|
||||
/* Set LastInputTick */
|
||||
IntLastInputTick(TRUE);
|
||||
/* Set LastInputTick */
|
||||
IntLastInputTick(TRUE);
|
||||
|
||||
/* Update modifier state */
|
||||
fsModifiers = IntKeyboardGetModifiers(&KeyInput);
|
||||
@@ -597,6 +597,22 @@ KeyboardThreadMain(PVOID StartContext)
|
||||
if (KeyInput.Flags & KEY_BREAK)
|
||||
{
|
||||
ModifierState &= ~fsModifiers;
|
||||
if(fsModifiers == MOD_ALT)
|
||||
{
|
||||
if(KeyInput.Flags & KEY_E0)
|
||||
{
|
||||
gQueueKeyStateTable[VK_RMENU] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
gQueueKeyStateTable[VK_LMENU] = 0;
|
||||
}
|
||||
if (gQueueKeyStateTable[VK_RMENU] == 0 &&
|
||||
gQueueKeyStateTable[VK_LMENU] == 0)
|
||||
{
|
||||
gQueueKeyStateTable[VK_MENU] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -612,7 +628,7 @@ KeyboardThreadMain(PVOID StartContext)
|
||||
bLeftAlt = FALSE;
|
||||
if(fsModifiers == MOD_ALT)
|
||||
{
|
||||
if(KeyInput.Flags & KEY_E1)
|
||||
if(KeyInput.Flags & KEY_E0)
|
||||
{
|
||||
gQueueKeyStateTable[VK_RMENU] = 0x80;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user