Browse Source

Refresh CapsLock state on window restore

This fixes an unreported bug where the avatar run-lock state can get
confused after alt-tabbing. The other key states are too volatile to
update... We never get the depressed events if they are pressed on window
activation.
Adam Johnson 13 years ago
parent
commit
6c4ec930b0
  1. 10
      Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp

10
Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp

@ -157,19 +157,16 @@ void plKeyboardDevice::HandleKeyEvent(plOSMsg message, plKeyDef key, bool bKeyDo
if (key == KEY_SHIFT)
{
fShiftKeyDown = bKeyDown;
// return;
}
if (key == KEY_CTRL)
{
fCtrlKeyDown = bKeyDown;
// return;
}
if (key == KEY_CAPSLOCK)
{
// Keyboards toggle the light on key-down, so I'm going with that.
if (bKeyDown && !bKeyRepeat)
if (!bKeyRepeat)
{
fCapsLockLock = !fCapsLockLock;
fCapsLockLock = (GetKeyState(KEY_CAPSLOCK) & 1) == 1;
plAvatarInputInterface::GetInstance()->ForceAlwaysRun(fCapsLockLock);
}
}
@ -190,7 +187,8 @@ void plKeyboardDevice::HandleWindowActivate(bool bActive, HWND hWnd)
{
if (bActive)
{
fCtrlKeyDown = false;
// Refresh the caps lock state
HandleKeyEvent(KEYDOWN, KEY_CAPSLOCK, nil, false);
}
else
{

Loading…
Cancel
Save