summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert Wesarg <bert.wesarg@googlemail.com>2011-10-13 15:48:15 +0200
committerPat Thoyts <patthoyts@users.sourceforge.net>2011-10-15 23:14:13 +0100
commit843d6597fbacfae02b8af7d6840992c92d0863f8 (patch)
tree6ede9ca58a8fd2ed9fda238bc396874369995f9a
parent81a92e52059b3e2246142650b1282c6f21f49507 (diff)
downloadgit-843d6597fbacfae02b8af7d6840992c92d0863f8.tar.gz
git-gui: incremental goto line in blame view
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>
-rw-r--r--lib/line.tcl15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/line.tcl b/lib/line.tcl
index ee27bd257a..c160012de6 100644
--- a/lib/line.tcl
+++ b/lib/line.tcl
@@ -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
+ }
}
}