Code

git-gui: incremental goto line in blame view
authorBert Wesarg <bert.wesarg@googlemail.com>
Thu, 13 Oct 2011 13:48:15 +0000 (15:48 +0200)
committerPat Thoyts <patthoyts@users.sourceforge.net>
Sat, 15 Oct 2011 22:14:13 +0000 (23:14 +0100)
The view jumps now to the given line number after each key press.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
lib/line.tcl

index ee27bd257a69c2d23c6ca07a4ffd697ba08abda1..c160012de6e4d19c02810d57f0b3268c1037523c 100644 (file)
@@ -20,7 +20,7 @@ constructor new {i_w i_text args} {
                -background lightgreen \
                -validate key \
                -validatecommand [cb _validate %P]
-       ${NS}::button $w.bn      -text [mc Go] -command [cb _incrgoto]
+       ${NS}::button $w.bn      -text [mc Go] -command [cb _goto]
 
        pack   $w.l   -side left
        pack   $w.bn  -side right
@@ -29,7 +29,8 @@ constructor new {i_w i_text args} {
        eval grid conf $w -sticky we $args
        grid remove $w
 
-       bind $w.ent <Return> [cb _incrgoto]
+       trace add variable linenum write [cb _goto_cb]
+       bind $w.ent <Return> [cb _goto]
        bind $w.ent <Escape> [cb hide]
 
        bind $w <Destroy> [list delete_this $this]
@@ -64,10 +65,16 @@ method _validate {P} {
        string is integer $P
 }
 
-method _incrgoto {} {
+method _goto_cb {name ix op} {
+       after idle [cb _goto 1]
+}
+
+method _goto {{nohide {0}}} {
        if {$linenum ne {}} {
                $ctext see $linenum.0
-               hide $this
+               if {!$nohide} {
+                       hide $this
+               }
        }
 }