From 727e610a808e9490ca007cd9a5551f76f48d2329 Mon Sep 17 00:00:00 2001 From: Marc Deslauriers Date: Thu, 30 Jan 2025 09:14:01 -0500 Subject: Fix window size saving when maximized It is expected when maximizing a window, that the unmaximized size should be remembered, and restored again when the window is unmaximized. The current behaviour was saving the maximized size, in addition to the maximized state, which is unexpected. In addition, there is no reason to hardcode a default size, as the schema contains a default size. --- pluma/pluma-app.c | 15 +++++---------- pluma/pluma-window.c | 33 +++++++-------------------------- pluma/pluma-window.h | 3 --- 3 files changed, 12 insertions(+), 39 deletions(-) diff --git a/pluma/pluma-app.c b/pluma/pluma-app.c index 53de32e1..5060ec97 100644 --- a/pluma/pluma-app.c +++ b/pluma/pluma-app.c @@ -552,23 +552,18 @@ pluma_app_create_window_real (PlumaApp *app, GdkWindowState state; gint w, h; + g_settings_get (app->priv->window_settings, + PLUMA_SETTINGS_WINDOW_SIZE, + "(ii)", &w, &h); + gtk_window_set_default_size (GTK_WINDOW (window), w, h); + state = g_settings_get_int (app->priv->window_settings, PLUMA_SETTINGS_WINDOW_STATE); if ((state & GDK_WINDOW_STATE_MAXIMIZED) != 0) - { - _pluma_window_get_default_size (&w, &h); - gtk_window_set_default_size (GTK_WINDOW (window), w, h); gtk_window_maximize (GTK_WINDOW (window)); - } else - { - g_settings_get (app->priv->window_settings, - PLUMA_SETTINGS_WINDOW_SIZE, - "(ii)", &w, &h); - gtk_window_set_default_size (GTK_WINDOW (window), w, h); gtk_window_unmaximize (GTK_WINDOW (window)); - } if ((state & GDK_WINDOW_STATE_STICKY ) != 0) gtk_window_stick (GTK_WINDOW (window)); diff --git a/pluma/pluma-window.c b/pluma/pluma-window.c index a613beb0..f141ccb9 100644 --- a/pluma/pluma-window.c +++ b/pluma/pluma-window.c @@ -68,9 +68,6 @@ #define LANGUAGE_DATA "PlumaWindowLanguageData" #define FULLSCREEN_ANIMATION_SPEED 4 -#define PLUMA_WINDOW_DEFAULT_WIDTH 650 -#define PLUMA_WINDOW_DEFAULT_HEIGHT 500 - /* Local variables */ static gboolean cansave = TRUE; @@ -130,8 +127,9 @@ save_panes_state (PlumaWindow *window) pluma_debug (DEBUG_WINDOW); - g_settings_set (window->priv->editor_settings, PLUMA_SETTINGS_WINDOW_SIZE, - "(ii)", window->priv->width, window->priv->height); + if ((window->priv->window_state & GDK_WINDOW_STATE_MAXIMIZED) == 0) + g_settings_set (window->priv->editor_settings, PLUMA_SETTINGS_WINDOW_SIZE, + "(ii)", window->priv->width, window->priv->height); g_settings_set_int (window->priv->editor_settings, PLUMA_SETTINGS_WINDOW_STATE, window->priv->window_state); @@ -2076,22 +2074,14 @@ clone_window (PlumaWindow *origin) screen = gtk_window_get_screen (GTK_WINDOW (origin)); window = pluma_app_create_window (app, screen); - if ((origin->priv->window_state & GDK_WINDOW_STATE_MAXIMIZED) != 0) - { - gint w, h; + gtk_window_set_default_size (GTK_WINDOW (window), + origin->priv->width, + origin->priv->height); - _pluma_window_get_default_size (&w, &h); - gtk_window_set_default_size (GTK_WINDOW (window), w, h); + if ((origin->priv->window_state & GDK_WINDOW_STATE_MAXIMIZED) != 0) gtk_window_maximize (GTK_WINDOW (window)); - } else - { - gtk_window_set_default_size (GTK_WINDOW (window), - origin->priv->width, - origin->priv->height); - gtk_window_unmaximize (GTK_WINDOW (window)); - } if ((origin->priv->window_state & GDK_WINDOW_STATE_STICKY ) != 0) gtk_window_stick (GTK_WINDOW (window)); @@ -4803,12 +4793,3 @@ pluma_window_get_message_bus (PlumaWindow *window) return window->priv->message_bus; } -void -_pluma_window_get_default_size (gint *width, gint *height) -{ - g_return_if_fail (width != NULL && height != NULL); - - *width = PLUMA_WINDOW_DEFAULT_WIDTH; - *height = PLUMA_WINDOW_DEFAULT_HEIGHT; -} - diff --git a/pluma/pluma-window.h b/pluma/pluma-window.h index 55479d0a..c7133c5f 100644 --- a/pluma/pluma-window.h +++ b/pluma/pluma-window.h @@ -188,9 +188,6 @@ void _pluma_recent_add (PlumaWindow *window, void _pluma_recent_remove (PlumaWindow *window, const gchar *uri); -void _pluma_window_get_default_size (gint *width, - gint *height); - G_END_DECLS #endif /* __PLUMA_WINDOW_H__ */ -- cgit v1.2.1