]> git.neil.brown.name Git - freerunner.git/commitdiff
runit: scroll to bottom on output
authorNeil Brown <neilb@suse.de>
Sun, 8 Feb 2009 07:22:11 +0000 (18:22 +1100)
committerNeil Brown <neilb@suse.de>
Sun, 8 Feb 2009 07:22:11 +0000 (18:22 +1100)
We really want to see the recent info...

runit/runit.py

index 68f34c1f34523c31b841a8a7b9ea609751154e81..2dc744223d169eed2d006cd577072ece6652626f 100644 (file)
@@ -19,6 +19,7 @@ class Runit(gtk.Window):
     def __init__(self, args):
         gtk.Window.__init__(self)
         self.set_default_size(480, 640)
+        self.connect("destroy", self.close)
         self.create_ui()
         self.show()
         self.args = args
@@ -28,7 +29,6 @@ class Runit(gtk.Window):
             self.set_title(args[0])
         self.run()
 
-        
     def run(self):
         self.pipe = Popen(self.args,
                           stdout=PIPE, stderr=PIPE,
@@ -69,6 +69,7 @@ class Runit(gtk.Window):
         sw = gtk.ScrolledWindow(); sw.show()
         sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
         v.add(sw)
+        self.adj = sw.get_vadjustment()
 
         tv = gtk.TextView()
         sw.add(tv)
@@ -82,10 +83,14 @@ class Runit(gtk.Window):
     def read(self, f, dir):
         l = f.read()
         self.buff.insert(self.buff.get_end_iter(), l)
+        gobject.idle_add(self.adjust)
         if l == "":
             return False
         return True
 
+    def adjust(self):
+        self.adj.set_value(self.adj.upper-self.adj.page_size)
+
     def done(self, *a):
         self.rerunb.show()
         def set_block(f):
@@ -114,5 +119,3 @@ def main(args):
 
 if __name__ == '__main__':
     main(sys.argv)
-
-