diff options
author | german77 <juangerman-13@hotmail.com> | 2021-02-24 03:39:02 +0100 |
---|---|---|
committer | german <german@thesoftwareartisans.com> | 2021-02-28 00:53:10 +0100 |
commit | 4738e14cb052a44c53e47379e595f00cef034dca (patch) | |
tree | 4264dd4e9d4a750951d1581241c484513c89b571 /src/yuzu_cmd/emu_window/emu_window_sdl2.cpp | |
parent | Merge pull request #5944 from Morph1984/gc-vibrations (diff) | |
download | yuzu-4738e14cb052a44c53e47379e595f00cef034dca.tar yuzu-4738e14cb052a44c53e47379e595f00cef034dca.tar.gz yuzu-4738e14cb052a44c53e47379e595f00cef034dca.tar.bz2 yuzu-4738e14cb052a44c53e47379e595f00cef034dca.tar.lz yuzu-4738e14cb052a44c53e47379e595f00cef034dca.tar.xz yuzu-4738e14cb052a44c53e47379e595f00cef034dca.tar.zst yuzu-4738e14cb052a44c53e47379e595f00cef034dca.zip |
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) { input_subsystem->GetMouse()->MouseMove(x, y, 0, 0); } +MouseInput::MouseButton EmuWindow_SDL2::SDLButtonToMouseButton(u32 button) const { + switch (button) { + case SDL_BUTTON_LEFT: + return MouseInput::MouseButton::Left; + case SDL_BUTTON_RIGHT: + return MouseInput::MouseButton::Right; + case SDL_BUTTON_MIDDLE: + return MouseInput::MouseButton::Wheel; + case SDL_BUTTON_X1: + return MouseInput::MouseButton::Backward; + case SDL_BUTTON_X2: + return MouseInput::MouseButton::Forward; + default: + return MouseInput::MouseButton::Undefined; + } +} + void EmuWindow_SDL2::OnMouseButton(u32 button, u8 state, s32 x, s32 y) { + const auto mouse_button = SDLButtonToMouseButton(button); if (button == SDL_BUTTON_LEFT) { if (state == SDL_PRESSED) { TouchPressed((unsigned)std::max(x, 0), (unsigned)std::max(y, 0), 0); } else { TouchReleased(0); } - } else if (button == SDL_BUTTON_RIGHT) { + } else { if (state == SDL_PRESSED) { - input_subsystem->GetMouse()->PressButton(x, y, button); + input_subsystem->GetMouse()->PressButton(x, y, mouse_button); } else { - input_subsystem->GetMouse()->ReleaseButton(button); + input_subsystem->GetMouse()->ReleaseButton(mouse_button); } } } |