[file-roller/wip/gtk4: 33/54] Save and restore the main window size
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [file-roller/wip/gtk4: 33/54] Save and restore the main window size
- Date: Sun, 2 Oct 2022 17:56:50 +0000 (UTC)
commit 91a41dfcee2ff21fd6d4576108131b15ba9fe307
Author: Paolo Bacchilega <paobac src gnome org>
Date: Sat Oct 1 19:06:37 2022 +0200
Save and restore the main window size
Make sure to call fr_window_close when closing
the application.
src/fr-application-menu.c | 8 +++++++-
src/fr-application.c | 6 +++---
src/fr-window.c | 27 ++++++++++++++++-----------
3 files changed, 26 insertions(+), 15 deletions(-)
---
diff --git a/src/fr-application-menu.c b/src/fr-application-menu.c
index f9b58ac3..b86c658d 100644
--- a/src/fr-application-menu.c
+++ b/src/fr-application-menu.c
@@ -145,7 +145,13 @@ fr_application_activate_quit (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
- g_application_quit (G_APPLICATION (user_data));
+ GList *windows;
+ GList *scan;
+
+ windows = g_list_copy (gtk_application_get_windows (GTK_APPLICATION (user_data)));
+ for (scan = windows; scan; scan = scan->next)
+ fr_window_close (FR_WINDOW (scan->data));
+ g_list_free (windows);
}
diff --git a/src/fr-application.c b/src/fr-application.c
index b5ba14e4..a02af6eb 100644
--- a/src/fr-application.c
+++ b/src/fr-application.c
@@ -109,7 +109,7 @@ action_open_archive (GSimpleAction *action,
saved_file = g_file_new_for_path (g_variant_get_string (value, NULL));
new_window = fr_window_new ();
- gtk_widget_show (new_window);
+ gtk_window_present (GTK_WINDOW (new_window));
fr_window_archive_open (FR_WINDOW (new_window),
saved_file,
GTK_WINDOW (new_window));
@@ -568,7 +568,7 @@ fr_application_command_line (GApplication *application,
if (remaining_args == NULL) { /* No archive specified. */
if (! arg_service)
- gtk_widget_show (fr_window_new ());
+ gtk_window_present (GTK_WINDOW (fr_window_new ()));
return fr_application_command_line_finished (application, EXIT_SUCCESS);
}
@@ -650,7 +650,7 @@ fr_application_command_line (GApplication *application,
GFile *file;
window = fr_window_new ();
- gtk_widget_show (window);
+ gtk_window_present (GTK_WINDOW (window));
file = g_application_command_line_create_file_for_arg (command_line, filename);
fr_window_archive_open (FR_WINDOW (window), file, GTK_WINDOW (window));
diff --git a/src/fr-window.c b/src/fr-window.c
index 8831334f..f2b4d081 100644
--- a/src/fr-window.c
+++ b/src/fr-window.c
@@ -565,7 +565,7 @@ fr_window_close (FrWindow *window)
if (gtk_widget_get_realized (GTK_WIDGET (window))) {
int width, height;
- gtk_widget_get_size_request (GTK_WIDGET (window), &width, &height);
+ gtk_window_get_default_size (GTK_WINDOW (window), &width, &height);
if ((width > 0) && (height > 0)) {
g_settings_set_int (private->settings_ui, PREF_UI_WINDOW_WIDTH, width);
g_settings_set_int (private->settings_ui, PREF_UI_WINDOW_HEIGHT, height);
@@ -2125,7 +2125,7 @@ progress_dialog_response (GtkDialog *dialog,
break;
case DIALOG_RESPONSE_OPEN_ARCHIVE:
new_window = fr_window_new ();
- gtk_widget_show (new_window);
+ gtk_window_present (GTK_WINDOW (new_window));
fr_window_archive_open (FR_WINDOW (new_window), saved_file, GTK_WINDOW (new_window));
close_progress_dialog (window, TRUE);
break;
@@ -2568,7 +2568,7 @@ confirmation_dialog_response (GtkDialog *dialog,
case DIALOG_RESPONSE_OPEN_ARCHIVE:
new_window = fr_window_new ();
- gtk_widget_show (new_window);
+ gtk_window_present (GTK_WINDOW (new_window));
fr_window_archive_open (FR_WINDOW (new_window), saved_file, GTK_WINDOW (new_window));
fr_window_close_confirmation_dialog (window, dialog);
break;
@@ -4619,6 +4619,15 @@ path_column_sort_func (GtkTreeModel *model,
}
+static gboolean
+fr_window_close_request_cb (GtkWindow *window,
+ gpointer user_data)
+{
+ fr_window_close (FR_WINDOW (window));
+ return TRUE;
+}
+
+
static void
fr_window_show_cb (GtkWidget *widget,
FrWindow *window)
@@ -4831,10 +4840,13 @@ fr_window_construct (FrWindow *window)
private->layout = gtk_grid_new ();
gtk_window_set_child (GTK_WINDOW (window), private->layout);
- gtk_widget_show (private->layout);
gtk_window_set_title (GTK_WINDOW (window), _("Archive Manager"));
+ g_signal_connect (G_OBJECT (window),
+ "close-request",
+ G_CALLBACK (fr_window_close_request_cb),
+ window);
g_signal_connect (window,
"show",
G_CALLBACK (fr_window_show_cb),
@@ -5077,7 +5089,6 @@ fr_window_construct (FrWindow *window)
window);*/
fr_window_attach (FR_WINDOW (window), private->paned, FR_WINDOW_AREA_CONTENTS);
- gtk_widget_show (private->paned);
/* ui actions */
@@ -5092,7 +5103,6 @@ fr_window_construct (FrWindow *window)
/* header bar */
private->headerbar = gtk_header_bar_new ();
- gtk_widget_show (private->headerbar);
gtk_header_bar_set_show_title_buttons (GTK_HEADER_BAR (private->headerbar), TRUE);
gtk_window_set_titlebar (GTK_WINDOW (window), private->headerbar);
@@ -5120,7 +5130,6 @@ fr_window_construct (FrWindow *window)
gtk_size_group_add_widget (header_bar_size_group, button);
gtk_menu_button_set_direction (GTK_MENU_BUTTON (button), GTK_ARROW_NONE);
gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), menu);
- gtk_widget_show (button);
gtk_header_bar_pack_end (GTK_HEADER_BAR (private->headerbar), button);
_gtk_add_accelerators_from_menu (menu);
@@ -5146,7 +5155,6 @@ fr_window_construct (FrWindow *window)
_gtk_header_bar_create_image_button ("go-previous-symbolic", _("Go to the previous
visited location"), "win.go-back"));
gtk_box_append (GTK_BOX (navigation_commands),
_gtk_header_bar_create_image_button ("go-next-symbolic", _("Go to the next visited
location"), "win.go-forward"));
- gtk_widget_show (navigation_commands);
gtk_style_context_add_class (gtk_widget_get_style_context (navigation_commands), "raised");
gtk_style_context_add_class (gtk_widget_get_style_context (navigation_commands), "linked");
gtk_box_append (GTK_BOX (private->location_bar), navigation_commands);
@@ -5175,12 +5183,9 @@ fr_window_construct (FrWindow *window)
_gtk_box_pack_end (GTK_BOX (location_box), private->location_entry, TRUE, FALSE);
_gtk_box_pack_end (GTK_BOX (private->location_bar), location_box, TRUE, FALSE);
- gtk_widget_show (private->location_bar);
fr_window_attach (FR_WINDOW (window), private->location_bar, FR_WINDOW_AREA_LOCATIONBAR);
if (private->list_mode == FR_WINDOW_LIST_MODE_FLAT)
gtk_widget_hide (private->location_bar);
- else
- gtk_widget_show (private->location_bar);
/* popup menus */
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]