[gnome-builder/gnome-builder-3-20] terminal: add scrollbar for terminal



commit dc8d26820c999baf23b9cb6f420a48765a88c88a
Author: Christian Hergert <chergert redhat com>
Date:   Tue May 10 12:57:27 2016 +0300

    terminal: add scrollbar for terminal

 plugins/terminal/gb-terminal-view-private.h |    3 +++
 plugins/terminal/gb-terminal-view.c         |   15 ++++++++++++++-
 plugins/terminal/gb-terminal-view.ui        |   14 ++++++++++++++
 3 files changed, 31 insertions(+), 1 deletions(-)
---
diff --git a/plugins/terminal/gb-terminal-view-private.h b/plugins/terminal/gb-terminal-view-private.h
index d3326ac..7d271e9 100644
--- a/plugins/terminal/gb-terminal-view-private.h
+++ b/plugins/terminal/gb-terminal-view-private.h
@@ -31,6 +31,9 @@ struct _GbTerminalView
   VteTerminal         *terminal_top;
   VteTerminal         *terminal_bottom;
 
+  GtkScrollbar        *top_scrollbar;
+  GtkScrollbar        *bottom_scrollbar;
+
   GFile               *save_as_file_top;
   GFile               *save_as_file_bottom;
 
diff --git a/plugins/terminal/gb-terminal-view.c b/plugins/terminal/gb-terminal-view.c
index 7e54009..968b5fa 100644
--- a/plugins/terminal/gb-terminal-view.c
+++ b/plugins/terminal/gb-terminal-view.c
@@ -413,7 +413,10 @@ gb_terminal_set_split_view (IdeLayoutView   *view,
                                             "expand", TRUE,
                                             "visible", TRUE,
                                             NULL);
-      gtk_container_add (GTK_CONTAINER (self->bottom_container), GTK_WIDGET (self->terminal_bottom));
+      gtk_container_add_with_properties (GTK_CONTAINER (self->bottom_container),
+                                         GTK_WIDGET (self->terminal_bottom),
+                                         "position", 0,
+                                         NULL);
       gtk_widget_show (self->bottom_container);
 
       gb_terminal_view_connect_terminal (self, self->terminal_bottom);
@@ -459,9 +462,17 @@ static void
 gb_terminal_view_connect_terminal (GbTerminalView *self,
                                    VteTerminal    *terminal)
 {
+  GtkAdjustment *vadj;
   GQuark quark;
   guint signal_id;
 
+  vadj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (terminal));
+
+  if (terminal == self->terminal_top)
+    gtk_range_set_adjustment (GTK_RANGE (self->top_scrollbar), vadj);
+  else
+    gtk_range_set_adjustment (GTK_RANGE (self->bottom_scrollbar), vadj);
+
   g_signal_connect_object (terminal,
                            "size-allocate",
                            G_CALLBACK (size_allocate_cb),
@@ -553,6 +564,8 @@ gb_terminal_view_class_init (GbTerminalViewClass *klass)
   gtk_widget_class_set_template_from_resource (widget_class, 
"/org/gnome/builder/plugins/terminal/gb-terminal-view.ui");
   gtk_widget_class_bind_template_child (widget_class, GbTerminalView, terminal_top);
   gtk_widget_class_bind_template_child (widget_class, GbTerminalView, bottom_container);
+  gtk_widget_class_bind_template_child (widget_class, GbTerminalView, top_scrollbar);
+  gtk_widget_class_bind_template_child (widget_class, GbTerminalView, bottom_scrollbar);
 
   g_type_ensure (VTE_TYPE_TERMINAL);
 
diff --git a/plugins/terminal/gb-terminal-view.ui b/plugins/terminal/gb-terminal-view.ui
index 8a66b06..30a3ebe 100644
--- a/plugins/terminal/gb-terminal-view.ui
+++ b/plugins/terminal/gb-terminal-view.ui
@@ -10,6 +10,7 @@
         <property name="visible">true</property>
         <child>
           <object class="GtkBox" id="top_container">
+            <property name="orientation">horizontal</property>
             <property name="expand">true</property>
             <property name="visible">true</property>
             <child>
@@ -20,6 +21,12 @@
                 <property name="scrollback-lines">0xffffffff</property>
               </object>
             </child>
+            <child>
+              <object class="GtkScrollbar" id="top_scrollbar">
+                <property name="orientation">vertical</property>
+                <property name="visible">true</property>
+              </object>
+            </child>
           </object>
           <packing>
             <property name="resize">true</property>
@@ -28,8 +35,15 @@
         </child>
         <child>
           <object class="GtkBox" id="bottom_container">
+            <property name="orientation">horizontal</property>
             <property name="expand">true</property>
             <property name="visible">false</property>
+            <child>
+              <object class="GtkScrollbar" id="bottom_scrollbar">
+                <property name="orientation">vertical</property>
+                <property name="visible">true</property>
+              </object>
+            </child>
           </object>
           <packing>
             <property name="resize">true</property>


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