[hotssh] tab: Add a scrollbar



commit 2857fcc57bebdf50e0a373cf67afdf6ab55282f1
Author: Colin Walters <walters verbum org>
Date:   Thu Jan 2 17:07:08 2014 -0500

    tab: Add a scrollbar
    
    Ah, the basic things one discovers one's application is missing when
    attempting to actually use it "in anger"...

 src/hotssh-tab.c |    8 ++++++--
 src/tab.ui       |   15 +++++++++++++--
 2 files changed, 19 insertions(+), 4 deletions(-)
---
diff --git a/src/hotssh-tab.c b/src/hotssh-tab.c
index 97c7711..4edbfdb 100644
--- a/src/hotssh-tab.c
+++ b/src/hotssh-tab.c
@@ -89,6 +89,7 @@ struct _HotSshTabPrivate
   GtkWidget *approve_hostkey_button;
   GtkWidget *disapprove_hostkey_button;
   GtkWidget *terminal_box;
+  GtkWidget *terminal_vscrollbar;
   GtkWidget *connections_treeview;
   GtkWidget *hostname_column;
   GtkWidget *hostname_renderer;
@@ -974,13 +975,15 @@ hotssh_tab_init (HotSshTab *self)
   g_signal_connect (priv->connections_treeview, "row-activated", G_CALLBACK (on_connection_row_activated), 
self);
 
   priv->password_interaction = hotssh_password_interaction_new ((GtkEntry*)priv->password_entry);
-
+  
   priv->terminal = vte_terminal_new ();
   g_signal_connect (priv->terminal, "realize", G_CALLBACK (on_vte_realize), self);
   vte_terminal_set_audible_bell ((VteTerminal*)priv->terminal, FALSE);  /* Audible bell is a terrible idea */
   g_signal_connect ((GObject*)priv->terminal, "size-allocate", G_CALLBACK (on_terminal_size_allocate), self);
   g_signal_connect ((GObject*)priv->terminal, "commit", G_CALLBACK (on_terminal_commit), self);
-  gtk_box_pack_start ((GtkBox*)priv->terminal_box, (GtkWidget*)priv->terminal, TRUE, TRUE, 0);
+  gtk_box_pack_start ((GtkBox*)priv->terminal_box, priv->terminal, TRUE, TRUE, 0);
+  gtk_range_set_adjustment ((GtkRange*)priv->terminal_vscrollbar,
+                            gtk_scrollable_get_vadjustment ((GtkScrollable*)priv->terminal));
   gtk_widget_show_all (priv->terminal_box);
 
   g_queue_init (&priv->write_queue);
@@ -1161,6 +1164,7 @@ hotssh_tab_class_init (HotSshTabClass *class)
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), HotSshTab, approve_hostkey_button);
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), HotSshTab, 
disapprove_hostkey_button);
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), HotSshTab, terminal_box);
+  gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), HotSshTab, terminal_vscrollbar);
 
   GTK_WIDGET_CLASS (class)->grab_focus = hotssh_tab_grab_focus;
   GTK_WIDGET_CLASS (class)->style_updated = hotssh_tab_style_updated;
diff --git a/src/tab.ui b/src/tab.ui
index 841ac53..6c38972 100644
--- a/src/tab.ui
+++ b/src/tab.ui
@@ -576,10 +576,9 @@
       <placeholder/>
     </child>
     <child>
-      <object class="GtkBox" id="terminal_outer_vbox">
+      <object class="GtkBox" id="terminal_outer_box">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="orientation">vertical</property>
         <child>
           <object class="GtkBox" id="terminal_box">
             <property name="visible">True</property>
@@ -595,6 +594,18 @@
             <property name="position">0</property>
           </packing>
         </child>
+        <child>
+          <object class="GtkScrollbar" id="terminal_vscrollbar">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="orientation">vertical</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
       </object>
       <packing>
         <property name="position">6</property>


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