1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:07:34 +00:00

FileManager: Save maximized window state on exit

When exiting FileManager in maximized state, save it and start in
maximized state on next launch.
This commit is contained in:
Marcus Nilsson 2021-06-06 21:56:18 +02:00 committed by Andreas Kling
parent 2f7dc29ab7
commit d5fa0ea60f

View file

@ -430,7 +430,7 @@ int run_in_windowed_mode(RefPtr<Core::ConfigFile> 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<GUI::Widget>();
@ -1141,6 +1141,10 @@ int run_in_windowed_mode(RefPtr<Core::ConfigFile> 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<Core::ConfigFile> 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;