Code

git-gui: only accept numbers in the goto-line input
authorBert Wesarg <bert.wesarg@googlemail.com>
Thu, 13 Oct 2011 13:48:14 +0000 (15:48 +0200)
committerPat Thoyts <patthoyts@users.sourceforge.net>
Sat, 15 Oct 2011 22:13:32 +0000 (23:13 +0100)
Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
lib/line.tcl

index 4913bdd9a80714be10c1b99c75d7322cc29b3174..904722e6772ee20ef28619db3bd6fd56aff6f89f 100644 (file)
@@ -15,7 +15,11 @@ constructor new {i_w i_text args} {
 
        ${NS}::frame  $w
        ${NS}::label  $w.l       -text [mc "Goto Line:"]
-       entry  $w.ent -textvariable ${__this}::linenum -background lightgreen
+       entry  $w.ent \
+               -textvariable ${__this}::linenum \
+               -background lightgreen \
+               -validate key \
+               -validatecommand [cb _validate %P]
        ${NS}::button $w.bn      -text [mc Go] -command [cb _incrgoto]
 
        pack   $w.l   -side left
@@ -26,7 +30,7 @@ constructor new {i_w i_text args} {
        grid remove $w
 
        bind $w.ent <Return> [cb _incrgoto]
-       bind $w.ent <Escape> [list linebar::hide $this]
+       bind $w.ent <Escape> [cb hide]
 
        bind $w <Destroy> [list delete_this $this]
        return $this
@@ -54,6 +58,11 @@ method editor {} {
        return $w.ent
 }
 
+method _validate {P} {
+       # only accept numbers as input
+       string is integer $P
+}
+
 method _incrgoto {} {
        if {$linenum ne {}} {
                $ctext see $linenum.0