[gnome-initial-setup/shell/4765: 146/362] display: reload configuration when screen changes



commit dd7ff2db398a3b41f72b535e3b76c39a7660d5b3
Author: Cosimo Cecchi <cosimo endlessm com>
Date:   Mon Aug 11 11:37:10 2014 -0700

    display: reload configuration when screen changes
    
    This way, we won't have stale information when toggling the checkbox
    again.
    
    [endlessm/eos-shell#3020]

 .../pages/display/gis-display-page.c               |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/gnome-initial-setup/pages/display/gis-display-page.c 
b/gnome-initial-setup/pages/display/gis-display-page.c
index 79319b1..9c9fc45 100644
--- a/gnome-initial-setup/pages/display/gis-display-page.c
+++ b/gnome-initial-setup/pages/display/gis-display-page.c
@@ -39,6 +39,8 @@ typedef struct {
   GnomeRRScreen *screen;
   GnomeRRConfig *current_config;
   GnomeRROutputInfo *current_output;
+
+  guint screen_changed_id;
 } GisDisplayPagePrivate;
 
 G_DEFINE_TYPE_WITH_PRIVATE (GisDisplayPage, gis_display_page, GIS_TYPE_PAGE);
@@ -136,6 +138,12 @@ gis_display_page_dispose (GObject *gobject)
   GisDisplayPage *page = GIS_DISPLAY_PAGE (gobject);
   GisDisplayPagePrivate *priv = gis_display_page_get_instance_private (page);
 
+  if (priv->screen_changed_id != 0)
+    {
+      g_signal_handler_disconnect (priv->screen, priv->screen_changed_id);
+      priv->screen_changed_id = 0;
+    }
+
   g_clear_object (&priv->current_config);
   g_clear_object (&priv->screen);
 
@@ -176,6 +184,10 @@ gis_display_page_constructed (GObject *object)
       return;
     }
 
+  priv->screen_changed_id = g_signal_connect_swapped (priv->screen,
+                                                      "changed",
+                                                      G_CALLBACK (read_screen_config),
+                                                      page);
   read_screen_config (page);
 
   widget = WID ("overscan_checkbutton");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]