diff --git a/src/platform/linux/input.cpp b/src/platform/linux/input.cpp index 8d951c6d..bccbf8ad 100644 --- a/src/platform/linux/input.cpp +++ b/src/platform/linux/input.cpp @@ -1532,7 +1532,7 @@ namespace platf { if (RIGHT_STICK & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_THUMBR, bf_new & RIGHT_STICK ? 1 : 0); if (LEFT_BUTTON & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_TL, bf_new & LEFT_BUTTON ? 1 : 0); if (RIGHT_BUTTON & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_TR, bf_new & RIGHT_BUTTON ? 1 : 0); - if (HOME & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_MODE, bf_new & HOME ? 1 : 0); + if ((HOME | MISC_BUTTON) & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_MODE, bf_new & (HOME | MISC_BUTTON) ? 1 : 0); if (A & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_SOUTH, bf_new & A ? 1 : 0); if (B & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_EAST, bf_new & B ? 1 : 0); if (X & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_NORTH, bf_new & X ? 1 : 0); diff --git a/src/platform/windows/input.cpp b/src/platform/windows/input.cpp index 2bdf421d..a3d737fb 100644 --- a/src/platform/windows/input.cpp +++ b/src/platform/windows/input.cpp @@ -1231,21 +1231,21 @@ namespace platf { auto flags = gamepad_state.buttonFlags; // clang-format off - if(flags & DPAD_UP) buttons |= XUSB_GAMEPAD_DPAD_UP; - if(flags & DPAD_DOWN) buttons |= XUSB_GAMEPAD_DPAD_DOWN; - if(flags & DPAD_LEFT) buttons |= XUSB_GAMEPAD_DPAD_LEFT; - if(flags & DPAD_RIGHT) buttons |= XUSB_GAMEPAD_DPAD_RIGHT; - if(flags & START) buttons |= XUSB_GAMEPAD_START; - if(flags & BACK) buttons |= XUSB_GAMEPAD_BACK; - if(flags & LEFT_STICK) buttons |= XUSB_GAMEPAD_LEFT_THUMB; - if(flags & RIGHT_STICK) buttons |= XUSB_GAMEPAD_RIGHT_THUMB; - if(flags & LEFT_BUTTON) buttons |= XUSB_GAMEPAD_LEFT_SHOULDER; - if(flags & RIGHT_BUTTON) buttons |= XUSB_GAMEPAD_RIGHT_SHOULDER; - if(flags & HOME) buttons |= XUSB_GAMEPAD_GUIDE; - if(flags & A) buttons |= XUSB_GAMEPAD_A; - if(flags & B) buttons |= XUSB_GAMEPAD_B; - if(flags & X) buttons |= XUSB_GAMEPAD_X; - if(flags & Y) buttons |= XUSB_GAMEPAD_Y; + if(flags & DPAD_UP) buttons |= XUSB_GAMEPAD_DPAD_UP; + if(flags & DPAD_DOWN) buttons |= XUSB_GAMEPAD_DPAD_DOWN; + if(flags & DPAD_LEFT) buttons |= XUSB_GAMEPAD_DPAD_LEFT; + if(flags & DPAD_RIGHT) buttons |= XUSB_GAMEPAD_DPAD_RIGHT; + if(flags & START) buttons |= XUSB_GAMEPAD_START; + if(flags & BACK) buttons |= XUSB_GAMEPAD_BACK; + if(flags & LEFT_STICK) buttons |= XUSB_GAMEPAD_LEFT_THUMB; + if(flags & RIGHT_STICK) buttons |= XUSB_GAMEPAD_RIGHT_THUMB; + if(flags & LEFT_BUTTON) buttons |= XUSB_GAMEPAD_LEFT_SHOULDER; + if(flags & RIGHT_BUTTON) buttons |= XUSB_GAMEPAD_RIGHT_SHOULDER; + if(flags & (HOME | MISC_BUTTON)) buttons |= XUSB_GAMEPAD_GUIDE; + if(flags & A) buttons |= XUSB_GAMEPAD_A; + if(flags & B) buttons |= XUSB_GAMEPAD_B; + if(flags & X) buttons |= XUSB_GAMEPAD_X; + if(flags & Y) buttons |= XUSB_GAMEPAD_Y; // clang-format on return (XUSB_BUTTON) buttons;