diff --git a/input/dinput.c b/input/dinput.c index 972772da75..0d690044c4 100644 --- a/input/dinput.c +++ b/input/dinput.c @@ -562,7 +562,7 @@ static void dinput_joypad_poll(void) { struct dinput_joypad *pad = &g_pads[i]; - if (pad->joypad) + if ((pad->joypad) && (g_xbox_pad_indexes[i] == -1)) { memset(&pad->joy_state, 0, sizeof(pad->joy_state)); diff --git a/input/winxinput_joypad.c b/input/winxinput_joypad.c index f993e89860..86446c10ed 100644 --- a/input/winxinput_joypad.c +++ b/input/winxinput_joypad.c @@ -315,7 +315,7 @@ static void winxinput_joypad_poll(void) { for (unsigned i = 0; i < 4; ++i) if (g_winxinput_states[i].connected) - if (g_XInputGetStateEx(i, &(g_winxinput_states[i].xstate)) == ERROR_DEVICE_NOT_CONNECTED) + if (g_XInputGetStateEx(i, &(g_winxinput_states[i].xstate)) != ERROR_SUCCESS) g_winxinput_states[i].connected = false; dinput_joypad.poll();