[gitg/wip/commit: 16/28] Monitor visible child on stack



commit 851ebd76d87d600df5b5ca1c9f9610f06fdaff83
Author: Jesse van den Kieboom <jessevdk gmail com>
Date:   Wed Jul 3 16:36:21 2013 +0200

    Monitor visible child on stack

 gitg/gitg-ui-elements.vala |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)
---
diff --git a/gitg/gitg-ui-elements.vala b/gitg/gitg-ui-elements.vala
index 5e8cb3b..47538f2 100644
--- a/gitg/gitg-ui-elements.vala
+++ b/gitg/gitg-ui-elements.vala
@@ -255,6 +255,16 @@ public class UIElements<T> : Object
                }
        }
 
+       private void on_visible_child_changed(Object obj, ParamSpec pspec)
+       {
+               string? name = d_stack.get_visible_child_name();
+
+               if (name != null)
+               {
+                       set_current_impl(d_elements[name]);
+               }
+       }
+
        public UIElements.with_builtin(T[] builtin,
                                       Peas.ExtensionSet extensions,
                                       Gtk.Stack? stack = null)
@@ -281,6 +291,11 @@ public class UIElements<T> : Object
 
                d_extensions.extension_added.connect(extension_added);
                d_extensions.extension_removed.connect(extension_removed);
+
+               if (d_stack != null)
+               {
+                       d_stack.notify["visible-child"].connect(on_visible_child_changed);
+               }
        }
 
        public UIElements(Peas.ExtensionSet extensions,


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