Code

git-gui: Automatically expand the line number column as needed
authorShawn O. Pearce <spearce@spearce.org>
Sat, 2 Jun 2007 18:41:10 +0000 (14:41 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Wed, 6 Jun 2007 05:26:49 +0000 (01:26 -0400)
After we finish reading a chunk of data from the file stream
we know how many digits we need in the line number column to
show the current maximum line number.  If our line number column
isn't wide enough, we should expand it out to the correct width.

Any file over our default allowance of 5 digits (99,999 lines)
is so large that the slight UI "glitch" when we widen the column
out is trivial compared to the time it will take Git to fully do
the annotations.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
lib/blame.tcl

index 55617026836171c2be557b430d5949ed7d0fbe89..0666dcadc19361bcc981f4385c9138a6f3525499 100644 (file)
@@ -422,12 +422,19 @@ method _read_file {fd} {
                $w_line insert end "$total_lines" linenumber
                $w_file insert end "$line"
        }
+
+       set ln_wc [expr {[string length $total_lines] + 2}]
+       if {[$w_line cget -width] < $ln_wc} {
+               $w_line conf -width $ln_wc
+       }
+
        $w_cgrp conf -state disabled
        $w_line conf -state disabled
        $w_file conf -state disabled
 
        if {[eof $fd]} {
                close $fd
+
                _status $this
                set cmd {nice git blame -M -C --incremental}
                if {$commit eq {}} {