From dc572e31fa7f44319f01fc35f35df508e03beaba Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 18 Aug 2019 12:17:09 +0200 Subject: [PATCH] LibGUI: Let GWindow::set_main_widget() take ownership of the widget We were already doing this anyway, with ~GWindow() calling delete on the main widget. --- Libraries/LibGUI/GWindow.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Libraries/LibGUI/GWindow.cpp b/Libraries/LibGUI/GWindow.cpp index fca5721b71..b71b9d4dd4 100644 --- a/Libraries/LibGUI/GWindow.cpp +++ b/Libraries/LibGUI/GWindow.cpp @@ -36,10 +36,7 @@ GWindow::GWindow(CObject* parent) GWindow::~GWindow() { all_windows.remove(this); - if (m_main_widget) - delete m_main_widget; hide(); - if (all_windows.is_empty()) { GApplication::the().did_delete_last_window({}); } @@ -465,8 +462,11 @@ void GWindow::set_main_widget(GWidget* widget) { if (m_main_widget == widget) return; + if (m_main_widget) + remove_child(*m_main_widget); m_main_widget = widget; if (m_main_widget) { + add_child(*widget); auto new_window_rect = rect(); if (m_main_widget->horizontal_size_policy() == SizePolicy::Fixed) new_window_rect.set_width(m_main_widget->preferred_size().width());