[gitg/wip/sidebar] Move panel first in vertical mode for consistent panel switching



commit c145f44373cda74228c7b18b6cc0b7b795876343
Author: Jesse van den Kieboom <jessevdk gmail com>
Date:   Tue Jul 2 21:49:15 2013 +0200

    Move panel first in vertical mode for consistent panel switching

 gitg/history/gitg-history-paned.vala    |   42 +++++++++++++++++++++++++++++-
 gitg/history/gitg-history.vala          |    7 ++++-
 gitg/resources/ui/gitg-history-paned.ui |    2 +-
 3 files changed, 47 insertions(+), 4 deletions(-)
---
diff --git a/gitg/history/gitg-history-paned.vala b/gitg/history/gitg-history-paned.vala
index 1dbbcc1..81f8a37 100644
--- a/gitg/history/gitg-history-paned.vala
+++ b/gitg/history/gitg-history-paned.vala
@@ -47,6 +47,44 @@ class Paned : Gtk.Paned
        [GtkChild]
        private Gd.StyledTextRenderer d_renderer_commit_list_author_date;
 
+       [GtkChild]
+       private Gtk.ScrolledWindow d_scrolled_window_commit_list;
+
+       [Notify]
+       public Gtk.Orientation inner_orientation
+       {
+               get { return d_paned_panels.orientation; }
+
+               set
+               {
+                       if (d_paned_panels.orientation != value)
+                       {
+                               d_paned_panels.orientation = value;
+
+                               // Swap children
+                               d_paned_panels.remove(d_scrolled_window_commit_list);
+                               d_paned_panels.remove(d_stack_panel);
+
+                               Gtk.Widget p1;
+                               Gtk.Widget p2;
+
+                               if (value == Gtk.Orientation.HORIZONTAL)
+                               {
+                                       p1 = d_stack_panel;
+                                       p2 = d_scrolled_window_commit_list;
+                               }
+                               else
+                               {
+                                       p1 = d_scrolled_window_commit_list;
+                                       p2 = d_stack_panel;
+                               }
+
+                               d_paned_panels.pack1(p1, true, true);
+                               d_paned_panels.pack2(p2, false, false);
+                       }
+               }
+       }
+
        construct
        {
                var state_settings = new Settings("org.gnome.gitg.state.history");
@@ -64,8 +102,8 @@ class Paned : Gtk.Paned
                var interface_settings = new Settings("org.gnome.gitg.preferences.interface");
 
                interface_settings.bind("orientation",
-                                       d_paned_panels,
-                                       "orientation",
+                                       this,
+                                       "inner_orientation",
                                        SettingsBindFlags.GET);
 
                d_renderer_commit_list_author.add_class("dim-label");
diff --git a/gitg/history/gitg-history.vala b/gitg/history/gitg-history.vala
index d2e18c4..b0f4d48 100644
--- a/gitg/history/gitg-history.vala
+++ b/gitg/history/gitg-history.vala
@@ -68,7 +68,12 @@ namespace GitgHistory
                        d_main.commit_list_view.get_selection().selected_foreach((model, path, iter) => {
                                if (!breakit)
                                {
-                                       breakit = !func(d_commit_list_model.commit_from_iter(iter));
+                                       var c = d_commit_list_model.commit_from_iter(iter);
+
+                                       if (c != null)
+                                       {
+                                               breakit = !func(c);
+                                       }
                                }
                        });
                }
diff --git a/gitg/resources/ui/gitg-history-paned.ui b/gitg/resources/ui/gitg-history-paned.ui
index 603acbc..4171e4a 100644
--- a/gitg/resources/ui/gitg-history-paned.ui
+++ b/gitg/resources/ui/gitg-history-paned.ui
@@ -74,7 +74,7 @@
           <class name="panels-paned"/>
         </style>
         <child>
-          <object class="GtkScrolledWindow" id="scrolled_window_commit_list">
+          <object class="GtkScrolledWindow" id="d_scrolled_window_commit_list">
             <property name="visible">True</property>
             <property name="hexpand">True</property>
             <property name="vexpand">True</property>


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