Просмотр исходного кода

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.
thankyouverycool 2 лет назад
Родитель
Сommit
c5dd72ac71
1 измененных файлов с 3 добавлено и 1 удалено
  1. 3 1
      Userland/Libraries/LibGUI/Window.cpp

+ 3 - 1
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 });
 }