diff --git a/repos/gems/src/app/floating_window_layouter/main.cc b/repos/gems/src/app/floating_window_layouter/main.cc index 74e86e526..d26dec07c 100644 --- a/repos/gems/src/app/floating_window_layouter/main.cc +++ b/repos/gems/src/app/floating_window_layouter/main.cc @@ -355,10 +355,12 @@ void Floating_window_layouter::Main::import_window_list(Xml_node window_list_xml unsigned long id = 0; node.attribute("id").value(&id); + Area const initial_size = area_attribute(node); + Window *win = lookup_window_by_id(id); if (!win) { win = new (env()->heap()) - Window(id, maximized_window_geometry, focus_history); + Window(id, maximized_window_geometry, initial_size, focus_history); windows.insert(win); Point initial_position(150*id % 800, 30 + (100*id % 500)); @@ -382,7 +384,7 @@ void Floating_window_layouter::Main::import_window_list(Xml_node window_list_xml win->position(initial_position); } - win->size(area_attribute(node)); + win->size(initial_size); win->title(string_attribute(node, "title", Window::Title(""))); win->has_alpha(node.has_attribute("has_alpha") && node.attribute("has_alpha").has_value("yes")); diff --git a/repos/gems/src/app/floating_window_layouter/window.h b/repos/gems/src/app/floating_window_layouter/window.h index 19c3276cc..67ce037cd 100644 --- a/repos/gems/src/app/floating_window_layouter/window.h +++ b/repos/gems/src/app/floating_window_layouter/window.h @@ -179,10 +179,12 @@ class Floating_window_layouter::Window : public List::Element public: - Window(Window_id id, Rect &maximized_geometry, + Window(Window_id id, Rect &maximized_geometry, Area initial_size, Focus_history &focus_history) : - _id(id), _maximized_geometry(maximized_geometry), + _id(id), + _requested_size(initial_size), + _maximized_geometry(maximized_geometry), _focus_history_entry(focus_history, _id) { }