From 062bfd40d3c88cabb93fe2b78761334bfd64e75b Mon Sep 17 00:00:00 2001 From: John Johns Date: Fri, 4 Jun 2021 20:31:06 -0700 Subject: [PATCH] Zrax's fix to re-enable the numlock key https://github.com/H-uru/Plasma/commit/37d6c12b943cbd060d6783b0fe34ee06727f392a --- .../PubUtilLib/plInputCore/plInputDevice.cpp | 52 +------------------ .../PubUtilLib/plInputCore/plInputDevice.h | 8 --- 2 files changed, 1 insertion(+), 59 deletions(-) diff --git a/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp b/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp index b49a7ac4..90846201 100644 --- a/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp +++ b/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp @@ -76,18 +76,15 @@ fCapsLockKeyDown(false), fAltKeyDown(false), fCtrlKeyDown(false), fCapsLockLock(false), -fPrevNumLockOn(false), fControlMode(STANDARD_MODE) { fInstance = this; - fStartedUpWithNumLockOn = ((GetKeyState(VK_NUMLOCK) & 1) != 0); InitKeyboardState(); } plKeyboardDevice::~plKeyboardDevice() { - if (fStartedUpWithNumLockOn) - ForceNumLock(true); + } void plKeyboardDevice::InitKeyboardState() @@ -168,29 +165,6 @@ void plKeyboardDevice::Shutdown() { } -#if HS_BUILD_FOR_WIN32 -void plKeyboardDevice::ForceNumLock(hsBool on) -{ - if (on != ((GetKeyState(VK_NUMLOCK) & 1) != 0)) - { - OSVERSIONINFO info; - info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&info); - if (info.dwPlatformId == VER_PLATFORM_WIN32_NT) - { - keybd_event( VK_NUMLOCK, 0, KEYEVENTF_EXTENDEDKEY | 0, 0 ); - keybd_event( VK_NUMLOCK, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0 ); - } - else - { - UInt8 keyState[256]; - GetKeyboardState(keyState); - keyState[VK_NUMLOCK] = keyState[VK_NUMLOCK] ^ 1; - SetKeyboardState(keyState); - } - } -} -#endif //HS_BUILD_FOR_WIN32 void plKeyboardDevice::HandleKeyEvent(plOSMsg message, plKeyDef key, bool bKeyDown, hsBool bKeyRepeat) { @@ -199,13 +173,6 @@ void plKeyboardDevice::HandleKeyEvent(plOSMsg message, plKeyDef key, bool bKeyDo if ((key >= 0) && (key < 256)) fKeyboardState[key] = bKeyDown; -#if HS_BUILD_FOR_WIN32 - if (key == VK_NUMLOCK && bKeyDown) - { - ForceNumLock(false); - } -#endif // HS_BUILD_FOR_WIN32 - if (key == KEY_SHIFT) { fShiftKeyDown = bKeyDown; @@ -242,27 +209,10 @@ void plKeyboardDevice::HandleWindowActivate(bool bActive, HWND hWnd) if (bActive) { fCtrlKeyDown = false; - - #if HS_BUILD_FOR_WIN32 - { - fPrevNumLockOn = ((GetKeyState(VK_NUMLOCK) & 1) != 0); - ForceNumLock(false); - hsBool oldLock = fCapsLockLock; - fCapsLockLock = (GetKeyState(KEY_CAPSLOCK) & 1) != 0; - if (fCapsLockLock != oldLock) - plAvatarInputInterface::GetInstance()->ForceAlwaysRun(fCapsLockLock); - } - #endif } else { ReleaseAllKeys(); // send key-up events for everything since we're losing focus - #if HS_BUILD_FOR_WIN32 - { - if (fPrevNumLockOn) - ForceNumLock(true); - } - #endif } } diff --git a/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.h b/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.h index bcb7297b..636feb1c 100644 --- a/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.h +++ b/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.h @@ -121,10 +121,6 @@ public: virtual hsBool IsCapsLockKeyOn(); virtual void Shutdown(); -#if HS_BUILD_FOR_WIN32 - void ForceNumLock(hsBool on); -#endif - static hsBool IgnoreCapsLock() { return fIgnoreCapsLock; } static void IgnoreCapsLock(hsBool ignore) { fIgnoreCapsLock = ignore; } @@ -133,10 +129,6 @@ public: static plKeyboardDevice* GetInstance() { return fInstance; } static char KeyEventToChar( plKeyEventMsg *msg ); - -protected: - hsBool fStartedUpWithNumLockOn; // maintaining a separate flag since apparently the other one can get confused - hsBool fPrevNumLockOn; }; class plPlate;