When the application loses focus, all inputs are released properly so inputs aren't stuck on refocus. Release Build 8085.

This commit is contained in:
sigonasr2 2024-03-09 05:15:48 -06:00
parent 3a93a2ed5e
commit 3616012457
3 changed files with 19 additions and 2 deletions

@ -39,7 +39,7 @@ All rights reserved.
#define VERSION_MAJOR 0 #define VERSION_MAJOR 0
#define VERSION_MINOR 5 #define VERSION_MINOR 5
#define VERSION_PATCH 1 #define VERSION_PATCH 1
#define VERSION_BUILD 8082 #define VERSION_BUILD 8085
#define stringify(a) stringify_(a) #define stringify(a) stringify_(a)
#define stringify_(a) #a #define stringify_(a) #a

@ -4594,7 +4594,24 @@ namespace olc
{ bHasMouseFocus = state; } { bHasMouseFocus = state; }
void PixelGameEngine::olc_UpdateKeyFocus(bool state) void PixelGameEngine::olc_UpdateKeyFocus(bool state)
{ bHasInputFocus = state; } {
bHasInputFocus = state;
if(!state){ //Drop all key and mouse inputs as we have lost input focus.
// Compare hardware input states from previous frame
auto ScanHardware = [&](HWButton* pKeys, bool* pStateOld, bool* pStateNew, uint32_t nKeyCount)
{
for (uint32_t i = 0; i < nKeyCount; i++)
{
if(pKeys==pKeyboardState)olc_UpdateKeyState(i,false);
else if(pKeys==pMouseState)olc_UpdateMouseState(i,false);
}
};
ScanHardware(pKeyboardState, pKeyOldState, pKeyNewState, 256);
ScanHardware(pMouseState, pMouseOldState, pMouseNewState, nMouseButtons);
}
}
void PixelGameEngine::olc_DropFiles(int32_t x, int32_t y, const std::vector<std::string>& vFiles) void PixelGameEngine::olc_DropFiles(int32_t x, int32_t y, const std::vector<std::string>& vFiles)
{ {

Binary file not shown.