From c5dd72ac718391ceb69eabecc511b8618bfd13bc Mon Sep 17 00:00:00 2001 From: thankyouverycool <66646555+thankyouverycool@users.noreply.github.com> Date: Wed, 17 Aug 2022 19:26:18 -0400 Subject: [PATCH] LibGUI: Remember size and position of hidden Windows And don't reset windowless rects on resize events. Fixes child windows reappearing at [0,0] and with the wrong dimensions after being hidden. --- Userland/Libraries/LibGUI/Window.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibGUI/Window.cpp b/Userland/Libraries/LibGUI/Window.cpp index c5bbf06075..77eedf81da 100644 --- a/Userland/Libraries/LibGUI/Window.cpp +++ b/Userland/Libraries/LibGUI/Window.cpp @@ -208,6 +208,8 @@ void Window::hide() if (GUI::Application::in_teardown()) return; + m_rect_when_windowless = rect(); + auto destroyed_window_ids = ConnectionToWindowServer::the().destroy_window(m_window_id); server_did_destroy(); @@ -468,7 +470,7 @@ void Window::handle_resize_event(ResizeEvent& event) m_pending_paint_event_rects.clear_with_capacity(); m_pending_paint_event_rects.append({ {}, new_size }); } - m_rect_when_windowless = { {}, new_size }; + m_rect_when_windowless.set_size(new_size); if (m_main_widget) m_main_widget->set_relative_rect({ {}, new_size }); }