diff --git a/src/xenia/hid/winkey/winkey_input_driver.cc b/src/xenia/hid/winkey/winkey_input_driver.cc index 5e8c090cec..7fe137d87b 100644 --- a/src/xenia/hid/winkey/winkey_input_driver.cc +++ b/src/xenia/hid/winkey/winkey_input_driver.cc @@ -588,7 +588,7 @@ X_RESULT WinKeyInputDriver::GetState(uint32_t user_index, const auto vk_key = static_cast(i); if (!binds.count(vk_key)) { - break; + continue; } const auto binding = binds.at(vk_key); @@ -675,6 +675,10 @@ X_RESULT WinKeyInputDriver::GetState(uint32_t user_index, } } } + } else { // So keys don't get 'stuck' if they were held previously when + // tabbing in and out from the window + memset(key_states_, 0, 256); + mouse_events_ = {}; } out_state->packet_number = packet_number_;