diff options
Diffstat (limited to 'src/yuzu_cmd/emu_window/emu_window_sdl2.cpp')
| -rw-r--r-- | src/yuzu_cmd/emu_window/emu_window_sdl2.cpp | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp index 7e391ab89..ce8b7c218 100644 --- a/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp +++ b/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp | |||
| @@ -35,18 +35,36 @@ void EmuWindow_SDL2::OnMouseMotion(s32 x, s32 y) { | |||
| 35 | input_subsystem->GetMouse()->MouseMove(x, y, 0, 0); | 35 | input_subsystem->GetMouse()->MouseMove(x, y, 0, 0); |
| 36 | } | 36 | } |
| 37 | 37 | ||
| 38 | MouseInput::MouseButton EmuWindow_SDL2::SDLButtonToMouseButton(u32 button) const { | ||
| 39 | switch (button) { | ||
| 40 | case SDL_BUTTON_LEFT: | ||
| 41 | return MouseInput::MouseButton::Left; | ||
| 42 | case SDL_BUTTON_RIGHT: | ||
| 43 | return MouseInput::MouseButton::Right; | ||
| 44 | case SDL_BUTTON_MIDDLE: | ||
| 45 | return MouseInput::MouseButton::Wheel; | ||
| 46 | case SDL_BUTTON_X1: | ||
| 47 | return MouseInput::MouseButton::Backward; | ||
| 48 | case SDL_BUTTON_X2: | ||
| 49 | return MouseInput::MouseButton::Forward; | ||
| 50 | default: | ||
| 51 | return MouseInput::MouseButton::Undefined; | ||
| 52 | } | ||
| 53 | } | ||
| 54 | |||
| 38 | void EmuWindow_SDL2::OnMouseButton(u32 button, u8 state, s32 x, s32 y) { | 55 | void EmuWindow_SDL2::OnMouseButton(u32 button, u8 state, s32 x, s32 y) { |
| 56 | const auto mouse_button = SDLButtonToMouseButton(button); | ||
| 39 | if (button == SDL_BUTTON_LEFT) { | 57 | if (button == SDL_BUTTON_LEFT) { |
| 40 | if (state == SDL_PRESSED) { | 58 | if (state == SDL_PRESSED) { |
| 41 | TouchPressed((unsigned)std::max(x, 0), (unsigned)std::max(y, 0), 0); | 59 | TouchPressed((unsigned)std::max(x, 0), (unsigned)std::max(y, 0), 0); |
| 42 | } else { | 60 | } else { |
| 43 | TouchReleased(0); | 61 | TouchReleased(0); |
| 44 | } | 62 | } |
| 45 | } else if (button == SDL_BUTTON_RIGHT) { | 63 | } else { |
| 46 | if (state == SDL_PRESSED) { | 64 | if (state == SDL_PRESSED) { |
| 47 | input_subsystem->GetMouse()->PressButton(x, y, button); | 65 | input_subsystem->GetMouse()->PressButton(x, y, mouse_button); |
| 48 | } else { | 66 | } else { |
| 49 | input_subsystem->GetMouse()->ReleaseButton(button); | 67 | input_subsystem->GetMouse()->ReleaseButton(mouse_button); |
| 50 | } | 68 | } |
| 51 | } | 69 | } |
| 52 | } | 70 | } |