From: Bert Wesarg Date: Thu, 13 Oct 2011 13:48:15 GMT Subject: [RFC/PATCH 4/4] git-gui: incremental goto line in blame view Message-ID: <7a9760b8cf85274b17c7233f61f59bb59cd18578.1318513492.git.bert.wesarg@googlemail.com> In-Reply-To: The view jumps now to the given line number after each key press. Signed-off-by: Bert Wesarg --- I didn't know this before, but gedits goto-line-dialog works this way. lib/line.tcl | 15 +++++++++++---- 1 files changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/line.tcl b/lib/line.tcl index 70785e1..0113e06 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 [cb _incrgoto] + trace add variable linenum write [cb _goto_cb] + bind $w.ent [cb _goto] bind $w.ent [cb hide] bind $w [list delete_this $this] @@ -67,10 +68,16 @@ method _validate {P} { return 0 } -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 + } } } -- 1.7.6.789.gb4599