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 [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] @@ -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 + } } }