git-gui: added gui.maxrecentrepo to extend the number of remembered repos
[gitweb.git] / lib / line.tcl
index 904722e6772ee20ef28619db3bd6fd56aff6f89f..a026de954c3d9cbfd03d4dec9a73a74647bf74ba 100644 (file)
@@ -15,12 +15,12 @@ constructor new {i_w i_text args} {
 
        ${NS}::frame  $w
        ${NS}::label  $w.l       -text [mc "Goto Line:"]
-       entry  $w.ent \
+       tentry  $w.ent \
                -textvariable ${__this}::linenum \
                -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]
@@ -45,6 +46,7 @@ method show {} {
 
 method hide {} {
        if {[visible $this]} {
+               $w.ent delete 0 end
                focus $ctext
                grid remove $w
        }
@@ -63,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
+               }
        }
 }