From 81e57147f8a2d4d0de8f180b33c30a1a6e3718d1 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 14 Jan 2025 21:09:43 -0800 Subject: [PATCH] Child windows shouldn't take focus if the parent window is in relative mouse mode Fixes https://github.com/libsdl-org/SDL/issues/11807 on Windows --- src/video/windows/SDL_windowsevents.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c index 9360857816..18edb76d33 100644 --- a/src/video/windows/SDL_windowsevents.c +++ b/src/video/windows/SDL_windowsevents.c @@ -1119,6 +1119,16 @@ LRESULT CALLBACK WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara if (SDL_WINDOW_IS_POPUP(data->window)) { return MA_NOACTIVATE; } + + // Check parents to see if they are in relative mouse mode and focused + SDL_Window *parent = data->window->parent; + while (parent) { + if ((parent->flags & SDL_WINDOW_INPUT_FOCUS) && + (parent->flags & SDL_WINDOW_MOUSE_RELATIVE_MODE)) { + return MA_NOACTIVATE; + } + parent = parent->parent; + } } break; case WM_SETFOCUS: