From f0a8c6311e2e3549aca9956f17e0ff980d9eb579 Mon Sep 17 00:00:00 2001 From: firox263 Date: Tue, 6 Oct 2020 22:37:35 +1300 Subject: [PATCH] Fix Win32 popup focus when using SSD Prevents GDK Popups from stealing focus from the parent window when using Server Side Decorations on win32. It uses `ShowWindow` and the `SW_SHOWNOACTIVATE` flag. --- gdk/win32/gdksurface-win32.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gdk/win32/gdksurface-win32.c b/gdk/win32/gdksurface-win32.c index 69b71baf13..3e9de289bd 100644 --- a/gdk/win32/gdksurface-win32.c +++ b/gdk/win32/gdksurface-win32.c @@ -1327,6 +1327,9 @@ gdk_win32_surface_raise (GdkSurface *window) API_CALL (SetWindowPos, (GDK_SURFACE_HWND (window), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOOWNERZORDER)); + + else if (GDK_IS_POPUP (window)) + ShowWindow (GDK_SURFACE_HWND (window), SW_SHOWNOACTIVATE); else /* Do not wrap this in an API_CALL macro as SetForegroundWindow might * fail when for example dragging a window belonging to a different