[gnome-builder] prefs: switch to parent stack when stack switcher changes



commit 87c4b4533632dc10181f4d8183b8f055cce85eaf
Author: Christian Hergert <christian hergert me>
Date:   Tue Nov 10 17:18:48 2015 -0800

    prefs: switch to parent stack when stack switcher changes

 libide/preferences/ide-preferences-perspective.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/libide/preferences/ide-preferences-perspective.c 
b/libide/preferences/ide-preferences-perspective.c
index f71de85..da83684 100644
--- a/libide/preferences/ide-preferences-perspective.c
+++ b/libide/preferences/ide-preferences-perspective.c
@@ -97,6 +97,17 @@ ide_preferences_perspective_extension_removed (PeasExtensionSet *set,
 }
 
 static void
+ide_preferences_perspective_notify_visible_child (IdePreferencesPerspective *self,
+                                                  GParamSpec                *pspec,
+                                                  GtkStack                  *stack)
+{
+  g_assert (IDE_IS_PREFERENCES_PERSPECTIVE (self));
+
+  gtk_stack_set_visible_child (self->top_stack, GTK_WIDGET (self->page_stack));
+  gtk_widget_hide (GTK_WIDGET (self->back_button));
+}
+
+static void
 ide_preferences_perspective_constructed (GObject *object)
 {
   IdePreferencesPerspective *self = (IdePreferencesPerspective *)object;
@@ -176,6 +187,12 @@ ide_preferences_perspective_init (IdePreferencesPerspective *self)
 
   gtk_widget_init_template (GTK_WIDGET (self));
 
+  g_signal_connect_object (self->page_stack,
+                           "notify::visible-child",
+                           G_CALLBACK (ide_preferences_perspective_notify_visible_child),
+                           self,
+                           G_CONNECT_SWAPPED);
+
   self->pages = g_sequence_new (NULL);
   self->widgets = g_hash_table_new (g_direct_hash, g_direct_equal);
 


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