Code

git-gui: Highlight the blame commit header from everything else
authorShawn O. Pearce <spearce@spearce.org>
Fri, 1 Jun 2007 07:19:27 +0000 (03:19 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Wed, 6 Jun 2007 05:26:45 +0000 (01:26 -0400)
The selected commit's blame header is now drawn in green, using
the same background color that is shown in the main file content
viewer.  The result is a much better looking commit pane, as we
use bold for header "keys" and proportional width fonts for the
stuff that doesn't need to be fixed width to maintain its formatting.

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

index fef28a347e84752f0357d061c95db307ad3caf8b..4730c2b1ea9adbb4d90e817842541225ee23d45b 100644 (file)
@@ -43,6 +43,7 @@ variable group_colors {
 }
 
 constructor new {i_commit i_path} {
+       variable active_color
        global cursor_ptr
 
        set commit $i_commit
@@ -139,6 +140,14 @@ constructor new {i_commit i_path} {
                -xscrollcommand [list $w.cm.sbx set] \
                -yscrollcommand [list $w.cm.sby set] \
                -font font_diff
+       $w_cmit tag conf header_key \
+               -tabs {3c} \
+               -background $active_color \
+               -font font_uibold
+       $w_cmit tag conf header_val \
+               -background $active_color \
+               -font font_ui
+       $w_cmit tag raise sel
        scrollbar $w.cm.sbx -orient h -command [list $w_cmit xview]
        scrollbar $w.cm.sby -orient v -command [list $w_cmit yview]
        pack $w.cm.sby -side right -fill y
@@ -449,12 +458,21 @@ method _showcommit {lno} {
                        set header($cmit,message) $msg
                }
 
-               $w_cmit insert end "commit $cmit
-Author: $author_name $author_email  $author_time
-Committer: $committer_name $committer_email  $committer_time
-Original File: [escape_path $line_file($lno)]
+               $w_cmit insert end "commit $cmit\n" header_key
+               $w_cmit insert end "Author:\t" header_key
+               $w_cmit insert end "$author_name $author_email" header_val
+               $w_cmit insert end "$author_time\n" header_val
+
+               $w_cmit insert end "Committer:\t" header_key
+               $w_cmit insert end "$committer_name $committer_email" header_val
+               $w_cmit insert end "$committer_time\n" header_val
+
+               if {$line_file($lno) ne $path} {
+                       $w_cmit insert end "Original File:\t" header_key
+                       $w_cmit insert end "[escape_path $line_file($lno)]\n" header_val
+               }
 
-$msg"
+               $w_cmit insert end "\n$msg"
        }
        $w_cmit conf -state disabled