From b7f9a5419f93254c96848cb0cab9fc7be281a5db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D1=83=D1=81=D0=BB=D0=B0=D0=BD=20=D0=98=D0=B6=D0=B1?= =?UTF-8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= Date: Sun, 17 Jun 2018 10:58:16 +0000 Subject: [PATCH] GDK W32: Use SWP_NOOWNERZORDER everywhere it can be applied There is no reason why we shouldn't pass this flag every time Z-order changes. We have separate routines that are used to maintain relative Z-order, so it should be completely OK to pass SWP_NOOWNERZORDER to let the OS know that it shouldn't try to maintain relative Z-order of the windows when raising them. --- gdk/win32/gdkevents-win32.c | 6 +++--- gdk/win32/gdksurface-win32.c | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index e69cd1e372..e02e2c8133 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -1897,7 +1897,7 @@ ensure_stacking_on_unminimize (MSG *msg) g_print (" restacking %p above %p", msg->hwnd, lowest_transient)); SetWindowPos (msg->hwnd, lowest_transient, 0, 0, 0, 0, - SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE); + SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOOWNERZORDER); } } @@ -1978,7 +1978,7 @@ ensure_stacking_on_activate_app (MSG *msg, impl->transient_owner != NULL) { SetWindowPos (msg->hwnd, HWND_TOP, 0, 0, 0, 0, - SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE); + SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOOWNERZORDER); return; } @@ -2020,7 +2020,7 @@ ensure_stacking_on_activate_app (MSG *msg, g_print (" restacking %p above %p", msg->hwnd, rover)); SetWindowPos (msg->hwnd, rover, 0, 0, 0, 0, - SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE); + SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOOWNERZORDER); break; } } diff --git a/gdk/win32/gdksurface-win32.c b/gdk/win32/gdksurface-win32.c index 4b5adb4924..a23d403a07 100644 --- a/gdk/win32/gdksurface-win32.c +++ b/gdk/win32/gdksurface-win32.c @@ -1199,7 +1199,7 @@ show_window_internal (GdkSurface *window, API_CALL (SetWindowPos, (GDK_SURFACE_HWND (window), (window->state & GDK_SURFACE_STATE_ABOVE)?HWND_TOPMOST:HWND_NOTOPMOST, 0, 0, 0, 0, - SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE)); + SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOOWNERZORDER)); } } @@ -1468,7 +1468,7 @@ gdk_win32_surface_raise (GdkSurface *window) else API_CALL (SetWindowPos, (GDK_SURFACE_HWND (window), HWND_TOP, 0, 0, 0, 0, - SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE)); + SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOOWNERZORDER)); } } @@ -1485,7 +1485,7 @@ gdk_win32_surface_lower (GdkSurface *window) API_CALL (SetWindowPos, (GDK_SURFACE_HWND (window), HWND_BOTTOM, 0, 0, 0, 0, - SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE)); + SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOOWNERZORDER)); } } @@ -2427,7 +2427,7 @@ _gdk_win32_surface_update_style_bits (GdkSurface *window) rect.right += after.right - before.right; rect.bottom += after.bottom - before.bottom; - flags = SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOREPOSITION; + flags = SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOREPOSITION | SWP_NOOWNERZORDER; if (will_be_topmost && !was_topmost) { @@ -4881,7 +4881,7 @@ gdk_win32_surface_fullscreen (GdkSurface *window) API_CALL (SetWindowPos, (GDK_SURFACE_HWND (window), HWND_TOP, x, y, width, height, - SWP_NOCOPYBITS | SWP_SHOWWINDOW)); + SWP_NOCOPYBITS | SWP_SHOWWINDOW | SWP_NOOWNERZORDER)); } } @@ -4904,7 +4904,7 @@ gdk_win32_surface_unfullscreen (GdkSurface *window) API_CALL (SetWindowPos, (GDK_SURFACE_HWND (window), HWND_NOTOPMOST, fi->r.left, fi->r.top, fi->r.right - fi->r.left, fi->r.bottom - fi->r.top, - SWP_NOCOPYBITS | SWP_SHOWWINDOW)); + SWP_NOCOPYBITS | SWP_SHOWWINDOW | SWP_NOOWNERZORDER)); g_object_set_data (G_OBJECT (window), "fullscreen-info", NULL); g_free (fi); @@ -4930,7 +4930,7 @@ gdk_win32_surface_set_keep_above (GdkSurface *window, API_CALL (SetWindowPos, (GDK_SURFACE_HWND (window), setting ? HWND_TOPMOST : HWND_NOTOPMOST, 0, 0, 0, 0, - SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE)); + SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOOWNERZORDER)); } gdk_synthesize_surface_state (window, @@ -4956,7 +4956,7 @@ gdk_win32_surface_set_keep_below (GdkSurface *window, API_CALL (SetWindowPos, (GDK_SURFACE_HWND (window), setting ? HWND_BOTTOM : HWND_NOTOPMOST, 0, 0, 0, 0, - SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE)); + SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOOWNERZORDER)); } gdk_synthesize_surface_state (window,