[gnome-builder] settings: only update settings if the window is visible
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] settings: only update settings if the window is visible
- Date: Thu, 7 Sep 2017 23:46:13 +0000 (UTC)
commit 78b556473af30d3bbdb91a22c3c5c349a6603d1a
Author: Christian Hergert <chergert redhat com>
Date: Thu Sep 7 16:45:50 2017 -0700
settings: only update settings if the window is visible
libide/util/ide-window-settings.c | 23 ++++++++++++++---------
1 files changed, 14 insertions(+), 9 deletions(-)
---
diff --git a/libide/util/ide-window-settings.c b/libide/util/ide-window-settings.c
index 41b8334..54c6815 100644
--- a/libide/util/ide-window-settings.c
+++ b/libide/util/ide-window-settings.c
@@ -28,21 +28,26 @@ static gboolean
ide_window_settings__window_save_settings_cb (gpointer data)
{
GtkWindow *window = data;
- GdkRectangle geom;
- gboolean maximized;
g_assert (GTK_IS_WINDOW (window));
g_assert (G_IS_SETTINGS (settings));
- g_object_set_data (G_OBJECT (window), "SETTINGS_HANDLER_ID", NULL);
+ if (gtk_widget_get_realized (GTK_WIDGET (window)) &&
+ gtk_widget_get_visible (GTK_WIDGET (window)))
+ {
+ GdkRectangle geom;
+ gboolean maximized;
+
+ g_object_set_data (G_OBJECT (window), "SETTINGS_HANDLER_ID", NULL);
- gtk_window_get_size (window, &geom.width, &geom.height);
- gtk_window_get_position (window, &geom.x, &geom.y);
- maximized = gtk_window_is_maximized (window);
+ gtk_window_get_size (window, &geom.width, &geom.height);
+ gtk_window_get_position (window, &geom.x, &geom.y);
+ maximized = gtk_window_is_maximized (window);
- g_settings_set (settings, "window-size", "(ii)", geom.width, geom.height);
- g_settings_set (settings, "window-position", "(ii)", geom.x, geom.y);
- g_settings_set_boolean (settings, "window-maximized", maximized);
+ g_settings_set (settings, "window-size", "(ii)", geom.width, geom.height);
+ g_settings_set (settings, "window-position", "(ii)", geom.x, geom.y);
+ g_settings_set_boolean (settings, "window-maximized", maximized);
+ }
return G_SOURCE_REMOVE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]