File tree Expand file tree Collapse file tree 2 files changed +12
-6
lines changed
Expand file tree Collapse file tree 2 files changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -191,15 +191,18 @@ class Keyboard::Impl
191191 _In_ IGameInputDevice *,
192192 _In_ uint64_t ,
193193 _In_ GameInputDeviceStatus currentStatus,
194- _In_ GameInputDeviceStatus) noexcept
194+ _In_ GameInputDeviceStatus previousStatus ) noexcept
195195 {
196196 auto impl = reinterpret_cast <Keyboard::Impl*>(context);
197197
198- if (currentStatus & GameInputDeviceConnected)
198+ const bool wasConnected = (previousStatus & GameInputDeviceConnected) != 0 ;
199+ const bool isConnected = (currentStatus & GameInputDeviceConnected) != 0 ;
200+
201+ if (isConnected && !wasConnected)
199202 {
200203 ++impl->mConnected ;
201204 }
202- else if (impl->mConnected > 0 )
205+ else if (!isConnected && wasConnected && impl->mConnected > 0 )
203206 {
204207 --impl->mConnected ;
205208 }
Original file line number Diff line number Diff line change @@ -320,15 +320,18 @@ class Mouse::Impl
320320 _In_ IGameInputDevice *,
321321 _In_ uint64_t ,
322322 _In_ GameInputDeviceStatus currentStatus,
323- _In_ GameInputDeviceStatus) noexcept
323+ _In_ GameInputDeviceStatus previousStatus ) noexcept
324324 {
325325 auto impl = reinterpret_cast <Mouse::Impl*>(context);
326326
327- if (currentStatus & GameInputDeviceConnected)
327+ const bool wasConnected = (previousStatus & GameInputDeviceConnected) != 0 ;
328+ const bool isConnected = (currentStatus & GameInputDeviceConnected) != 0 ;
329+
330+ if (isConnected && !wasConnected)
328331 {
329332 ++impl->mConnected ;
330333 }
331- else if (impl->mConnected > 0 )
334+ else if (!isConnected && wasConnected && impl->mConnected > 0 )
332335 {
333336 --impl->mConnected ;
334337 }
You can’t perform that action at this time.
0 commit comments