From d5fa0ea60fee93557c599cf6bb68b4db44e0122f Mon Sep 17 00:00:00 2001 From: Marcus Nilsson Date: Sun, 6 Jun 2021 21:56:18 +0200 Subject: [PATCH] FileManager: Save maximized window state on exit When exiting FileManager in maximized state, save it and start in maximized state on next launch. --- Userland/Applications/FileManager/main.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Userland/Applications/FileManager/main.cpp b/Userland/Applications/FileManager/main.cpp index 720a4b2ac8..d7cfb802d4 100644 --- a/Userland/Applications/FileManager/main.cpp +++ b/Userland/Applications/FileManager/main.cpp @@ -430,7 +430,7 @@ int run_in_windowed_mode(RefPtr config, String initial_locatio auto top = config->read_num_entry("Window", "Top", 75); auto width = config->read_num_entry("Window", "Width", 640); auto height = config->read_num_entry("Window", "Height", 480); - window->set_rect({ left, top, width, height }); + auto was_maximized = config->read_bool_entry("Window", "Maximized", false); auto& widget = window->set_main_widget(); @@ -1141,6 +1141,10 @@ int run_in_windowed_mode(RefPtr config, String initial_locatio window->show(); + window->set_rect({ left, top, width, height }); + if (was_maximized) + window->set_maximized(true); + // Read directory read mode from config. auto dir_view_mode = config->read_entry("DirectoryView", "ViewMode", "Icon"); @@ -1163,10 +1167,13 @@ int run_in_windowed_mode(RefPtr config, String initial_locatio // Write window position to config file on close request. window->on_close_request = [&] { - config->write_num_entry("Window", "Left", window->x()); - config->write_num_entry("Window", "Top", window->y()); - config->write_num_entry("Window", "Width", window->width()); - config->write_num_entry("Window", "Height", window->height()); + config->write_bool_entry("Window", "Maximized", window->is_maximized()); + if (!window->is_maximized()) { + config->write_num_entry("Window", "Left", window->x()); + config->write_num_entry("Window", "Top", window->y()); + config->write_num_entry("Window", "Width", window->width()); + config->write_num_entry("Window", "Height", window->height()); + } config->sync(); return GUI::Window::CloseRequestDecision::Close;