From ad95aac35790820cf10a1230e5885cc4ac16d613 Mon Sep 17 00:00:00 2001 From: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com> Date: Fri, 19 Jun 2026 09:30:04 +0200 Subject: [PATCH] Mouse hotfixes (#4596) * add missing setting check in sceMouseInit * Send guest event on mouse removed host event --- src/core/libraries/mouse/mouse.cpp | 7 +++++-- src/core/libraries/mouse/sdl_mouse.cpp | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/core/libraries/mouse/mouse.cpp b/src/core/libraries/mouse/mouse.cpp index 822459c5d..988aa576f 100644 --- a/src/core/libraries/mouse/mouse.cpp +++ b/src/core/libraries/mouse/mouse.cpp @@ -4,6 +4,7 @@ // Generated By moduleGenerator #include "SDL3/SDL_mouse.h" #include "common/logging/log.h" +#include "core/emulator_settings.h" #include "core/libraries/error_codes.h" #include "core/libraries/libs.h" #include "core/user_settings.h" @@ -56,8 +57,10 @@ int PS4_SYSV_ABI sceMouseGetDeviceInfo() { } int PS4_SYSV_ABI sceMouseInit() { - SDL_WarpMouseInWindow(g_window->GetSDLWindow(), 1, 1); - SDL_SetWindowRelativeMouseMode(g_window->GetSDLWindow(), true); + if (EmulatorSettings.IsMiceUsedAsMice()) { + SDL_WarpMouseInWindow(g_window->GetSDLWindow(), 1, 1); + SDL_SetWindowRelativeMouseMode(g_window->GetSDLWindow(), true); + } int micecount = 0; auto micelist = SDL_GetMice(&micecount); LOG_INFO(Input, "{} mice are currently connected", micecount); diff --git a/src/core/libraries/mouse/sdl_mouse.cpp b/src/core/libraries/mouse/sdl_mouse.cpp index 4d737599d..48d3dc163 100644 --- a/src/core/libraries/mouse/sdl_mouse.cpp +++ b/src/core/libraries/mouse/sdl_mouse.cpp @@ -53,6 +53,7 @@ bool PushSDLEvent(SDL_Event const& e) { return false; } mouse_sdl_handles[index] = -1; + mouse_states[index].Push(current_state[index]); break; } case SDL_EVENT_MOUSE_MOTION: {