diff --git a/Dllmain/BuildNo.rc b/Dllmain/BuildNo.rc index 0b734172..b8a2f9c1 100644 --- a/Dllmain/BuildNo.rc +++ b/Dllmain/BuildNo.rc @@ -1 +1 @@ -#define BUILD_NUMBER 7053 +#define BUILD_NUMBER 7054 diff --git a/External/dinputto8 b/External/dinputto8 index f31e8ddd..fda3e1e6 160000 --- a/External/dinputto8 +++ b/External/dinputto8 @@ -1 +1 @@ -Subproject commit f31e8ddd70d374795f78d9f2bc0ac69c77315e19 +Subproject commit fda3e1e616217d91d03222f7d84f547a09af8f77 diff --git a/dinput8/IDirectInputDevice8.cpp b/dinput8/IDirectInputDevice8.cpp index 296279fa..efb5ac7f 100644 --- a/dinput8/IDirectInputDevice8.cpp +++ b/dinput8/IDirectInputDevice8.cpp @@ -116,7 +116,7 @@ HRESULT m_IDirectInputDevice8::GetDeviceData(DWORD cbObjectData, LPDIDEVICEOBJEC { Logging::LogDebug() << __FUNCTION__ << " (" << this << ")"; - if (Config.FilterNonActiveInput) + if (Config.FilterNonActiveInput && pdwInOut) { // Check foreground window's process and don't copy device data if process is not active HWND hfgwnd = GetForegroundWindow(); @@ -133,10 +133,7 @@ HRESULT m_IDirectInputDevice8::GetDeviceData(DWORD cbObjectData, LPDIDEVICEOBJEC } } - HRESULT hr = ProxyInterface->GetDeviceData(cbObjectData, rgdod, pdwInOut, dwFlags); - - // Several games handle DI_BUFFEROVERFLOW as failure - return IsMouse && hr == DI_BUFFEROVERFLOW && rgdod && pdwInOut && *pdwInOut > 0 ? DI_OK : hr; + return ProxyInterface->GetDeviceData(cbObjectData, rgdod, pdwInOut, dwFlags); } HRESULT m_IDirectInputDevice8::SetDataFormat(LPCDIDATAFORMAT lpdf)