[nautilus/wip/antoniof/gnome-42: 35/72] Revert "window: Simplify save_geometry()"
- From: António Fernandes <antoniof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/wip/antoniof/gnome-42: 35/72] Revert "window: Simplify save_geometry()"
- Date: Fri, 11 Feb 2022 19:28:00 +0000 (UTC)
commit 3c09d1faec9bb3a224dcbb99df48cdf8d4731be0
Author: António Fernandes <antoniof gnome org>
Date: Fri Feb 11 19:01:46 2022 +0000
Revert "window: Simplify save_geometry()"
This reverts commit 212f7efc61a77cf0e7f3cc5b25eeedf604b5b73e.
src/nautilus-window.c | 41 +++++++++++++++++++++++++++++------------
1 file changed, 29 insertions(+), 12 deletions(-)
---
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 7c09fb51d..2a8ac417b 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -2303,32 +2303,49 @@ nautilus_window_save_geometry (NautilusWindow *window)
{
GdkWindow *gdk_window;
GdkWindowState window_state;
- gint width;
- gint height;
- GVariant *initial_size;
+ gboolean is_maximized;
g_assert (NAUTILUS_IS_WINDOW (window));
gdk_window = gtk_widget_get_window (GTK_WIDGET (window));
+
if (!gdk_window)
{
return;
}
+
window_state = gdk_window_get_state (gtk_widget_get_window (GTK_WIDGET (window)));
- if (window_state & (GDK_WINDOW_STATE_TILED | GDK_WINDOW_STATE_MAXIMIZED))
+
+ /* Don't save the window state for tiled windows. This is a special case,
+ * where the geometry only makes sense in combination with other tiled
+ * windows, that we can't possibly restore. */
+ if (window_state & GDK_WINDOW_STATE_TILED)
{
- /* Don't save the window state for tiled or maximized windows. In GTK
- * gtk_window_get_default_size() is going to do this for us.
- */
return;
}
- gtk_window_get_size (GTK_WINDOW (window), &width, &height);
- initial_size = g_variant_new_parsed ("(%i, %i)", width, height);
+ is_maximized = window_state & GDK_WINDOW_STATE_MAXIMIZED;
- g_settings_set_value (nautilus_window_state,
- NAUTILUS_WINDOW_STATE_INITIAL_SIZE,
- initial_size);
+ /* Only save the initial size when the window is not maximized. If the
+ * window is maximized, a previously stored initial size will be more
+ * appropriate when unmaximizing the window in the future. */
+ if (!is_maximized)
+ {
+ gint width;
+ gint height;
+ GVariant *initial_size;
+
+ gtk_window_get_size (GTK_WINDOW (window), &width, &height);
+ initial_size = g_variant_new_parsed ("(%i, %i)", width, height);
+
+ g_settings_set_value (nautilus_window_state,
+ NAUTILUS_WINDOW_STATE_INITIAL_SIZE,
+ initial_size);
+ }
+
+ g_settings_set_boolean (nautilus_window_state,
+ NAUTILUS_WINDOW_STATE_MAXIMIZED,
+ is_maximized);
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]