diff --git a/src/core/frontend/emu_window.cpp b/src/core/frontend/emu_window.cpp index f2f719cb95..cff49899ae 100644 --- a/src/core/frontend/emu_window.cpp +++ b/src/core/frontend/emu_window.cpp @@ -66,14 +66,14 @@ static bool IsWithinTouchscreen(const Layout::FramebufferLayout& layout, u32 fra framebuffer_x >= layout.screen.left && framebuffer_x < layout.screen.right); } -std::tuple EmuWindow::ClipToTouchScreen(u32 new_x, u32 new_y) const { +std::pair EmuWindow::ClipToTouchScreen(u32 new_x, u32 new_y) const { new_x = std::max(new_x, framebuffer_layout.screen.left); new_x = std::min(new_x, framebuffer_layout.screen.right - 1); new_y = std::max(new_y, framebuffer_layout.screen.top); new_y = std::min(new_y, framebuffer_layout.screen.bottom - 1); - return std::make_tuple(new_x, new_y); + return std::make_pair(new_x, new_y); } void EmuWindow::TouchPressed(u32 framebuffer_x, u32 framebuffer_y, size_t id) { @@ -107,11 +107,14 @@ void EmuWindow::TouchMoved(u32 framebuffer_x, u32 framebuffer_y, size_t id) { if (id >= touch_state->status.size()) { return; } - if (!std::get<2>(touch_state->status[id])) - return; - if (!IsWithinTouchscreen(framebuffer_layout, framebuffer_x, framebuffer_y)) + if (!std::get<2>(touch_state->status[id])) { + return; + } + + if (!IsWithinTouchscreen(framebuffer_layout, framebuffer_x, framebuffer_y)) { std::tie(framebuffer_x, framebuffer_y) = ClipToTouchScreen(framebuffer_x, framebuffer_y); + } TouchPressed(framebuffer_x, framebuffer_y, id); } diff --git a/src/core/frontend/emu_window.h b/src/core/frontend/emu_window.h index beb4d90272..076148698d 100644 --- a/src/core/frontend/emu_window.h +++ b/src/core/frontend/emu_window.h @@ -228,7 +228,7 @@ private: /** * Clip the provided coordinates to be inside the touchscreen area. */ - std::tuple ClipToTouchScreen(u32 new_x, u32 new_y) const; + std::pair ClipToTouchScreen(u32 new_x, u32 new_y) const; Layout::FramebufferLayout framebuffer_layout; ///< Current framebuffer layout