From 6807d508d0f0f890c0e30f9ede1948ff096380ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=B6eh=20Matt?= <5415177+ZehMatt@users.noreply.github.com> Date: Tue, 27 Jun 2023 17:37:49 +0300 Subject: [PATCH] Ignore dead windows for auto positioning --- src/openrct2-ui/interface/Window.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/openrct2-ui/interface/Window.cpp b/src/openrct2-ui/interface/Window.cpp index ba74bddda7..24e35c789d 100644 --- a/src/openrct2-ui/interface/Window.cpp +++ b/src/openrct2-ui/interface/Window.cpp @@ -38,6 +38,8 @@ static bool WindowFitsBetweenOthers(const ScreenCoordsXY& loc, int32_t width, in { for (auto& w : g_window_list) { + if (w->flags & WF_DEAD) + continue; if (w->flags & WF_STICK_TO_BACK) continue; @@ -131,6 +133,8 @@ static ScreenCoordsXY GetAutoPositionForNewWindow(int32_t width, int32_t height) // Place window next to another for (auto& w : g_window_list) { + if (w->flags & WF_DEAD) + continue; if (w->flags & WF_STICK_TO_BACK) continue; @@ -158,6 +162,8 @@ static ScreenCoordsXY GetAutoPositionForNewWindow(int32_t width, int32_t height) // Overlap for (auto& w : g_window_list) { + if (w->flags & WF_DEAD) + continue; if (w->flags & WF_STICK_TO_BACK) continue; @@ -222,6 +228,8 @@ WindowBase* WindowCreate( // Close least recently used window for (auto& w : g_window_list) { + if (w->flags & WF_DEAD) + continue; if (!(w->flags & (WF_STICK_TO_BACK | WF_STICK_TO_FRONT | WF_NO_AUTO_CLOSE))) { WindowClose(*w.get());