From: Neil Brown Date: Sun, 8 Feb 2009 07:22:11 +0000 (+1100) Subject: runit: scroll to bottom on output X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=8452e61d0a81680f85a6cc82b957a49fbfd6bacd;p=freerunner.git runit: scroll to bottom on output We really want to see the recent info... --- diff --git a/runit/runit.py b/runit/runit.py index 68f34c1..2dc7442 100644 --- a/runit/runit.py +++ b/runit/runit.py @@ -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) - -