Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
gitk: Make downward-pointing arrows end in vertical line segment
author
Paul Mackerras
<paulus@samba.org>
Sat, 18 Mar 2006 09:42:46 +0000
(20:42 +1100)
committer
Paul Mackerras
<paulus@samba.org>
Sat, 18 Mar 2006 09:42:46 +0000
(20:42 +1100)
It seems Tk 8.4 can't draw arrows on diagonal line segments. This
adds code to the optimizer to make the last bit of a line go vertically
before being terminated with an arrow pointing downwards, so that
it will be drawn correctly by Tk 8.4.
Signed-off-by: Paul Mackerras <paulus@samba.org>
gitk
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
f4171a1
)
diff --git
a/gitk
b/gitk
index 34f55bc1ecb4424cd481d5ab316fe6fc7fc56c6e..69d67ee64a508f6468f1afe9889af3af94fda0a6 100755
(executable)
--- a/
gitk
+++ b/
gitk
@@
-952,8
+952,9
@@
proc layoutrows {row endrow last} {
set offs [lreplace $offs $x $x]
set offs [incrange $offs $x 1]
set idinlist($i) 0
set offs [lreplace $offs $x $x]
set offs [incrange $offs $x 1]
set idinlist($i) 0
- lappend linesegends($row) $i
- lappend idrowranges($i) [expr {$row-1}]
+ set rm1 [expr {$row - 1}]
+ lappend linesegends($rm1) $i
+ lappend idrowranges($i) $rm1
if {[incr nev -1] <= 0} break
continue
}
if {[incr nev -1] <= 0} break
continue
}
@@
-982,7
+983,6
@@
proc layoutrows {row endrow last} {
unset idinlist($id)
}
if {[info exists idrowranges($id)]} {
unset idinlist($id)
}
if {[info exists idrowranges($id)]} {
- lappend linesegends($row) $id
lappend idrowranges($id) $row
}
incr row
lappend idrowranges($id) $row
}
incr row
@@
-1038,7
+1038,7
@@
proc addextraid {id row} {
proc layouttail {} {
global rowidlist rowoffsets idinlist commitidx
proc layouttail {} {
global rowidlist rowoffsets idinlist commitidx
- global idrowranges
linesegends
+ global idrowranges
set row $commitidx
set idlist [lindex $rowidlist $row]
set row $commitidx
set idlist [lindex $rowidlist $row]
@@
-1047,7
+1047,6
@@
proc layouttail {} {
set id [lindex $idlist $col]
addextraid $id $row
unset idinlist($id)
set id [lindex $idlist $col]
addextraid $id $row
unset idinlist($id)
- lappend linesegends($row) $id
lappend idrowranges($id) $row
incr row
set offs [ntimes $col 0]
lappend idrowranges($id) $row
incr row
set offs [ntimes $col 0]
@@
-1061,7
+1060,6
@@
proc layouttail {} {
lset rowidlist $row [list $id]
lset rowoffsets $row 0
makeuparrow $id 0 $row 0
lset rowidlist $row [list $id]
lset rowoffsets $row 0
makeuparrow $id 0 $row 0
- lappend linesegends($row) $id
lappend idrowranges($id) $row
incr row
lappend rowidlist {}
lappend idrowranges($id) $row
incr row
lappend rowidlist {}
@@
-1079,12
+1077,23
@@
proc insert_pad {row col npad} {
}
proc optimize_rows {row col endrow} {
}
proc optimize_rows {row col endrow} {
- global rowidlist rowoffsets idrowranges
+ global rowidlist rowoffsets idrowranges
linesegends displayorder
for {} {$row < $endrow} {incr row} {
set idlist [lindex $rowidlist $row]
set offs [lindex $rowoffsets $row]
set haspad 0
for {} {$row < $endrow} {incr row} {
set idlist [lindex $rowidlist $row]
set offs [lindex $rowoffsets $row]
set haspad 0
+ set downarrowcols {}
+ if {[info exists linesegends($row)]} {
+ set downarrowcols $linesegends($row)
+ if {$col > 0} {
+ while {$downarrowcols ne {}} {
+ set i [lsearch -exact $idlist [lindex $downarrowcols 0]]
+ if {$i < 0 || $i >= $col} break
+ set downarrowcols [lrange $downarrowcols 1 end]
+ }
+ }
+ }
for {} {$col < [llength $offs]} {incr col} {
if {[lindex $idlist $col] eq {}} {
set haspad 1
for {} {$col < [llength $offs]} {incr col} {
if {[lindex $idlist $col] eq {}} {
set haspad 1
@@
-1102,6
+1111,10
@@
proc optimize_rows {row col endrow} {
$y0 > [lindex $idrowranges($id) 0]} {
set isarrow 1
}
$y0 > [lindex $idrowranges($id) 0]} {
set isarrow 1
}
+ } elseif {$downarrowcols ne {} &&
+ [lindex $idlist $col] eq [lindex $downarrowcols 0]} {
+ set downarrowcols [lrange $downarrowcols 1 end]
+ set isarrow 1
}
if {$z < -1 || ($z < 0 && $isarrow)} {
set npad [expr {-1 - $z + $isarrow}]
}
if {$z < -1 || ($z < 0 && $isarrow)} {
set npad [expr {-1 - $z + $isarrow}]
@@
-1660,7
+1673,7
@@
proc drawrest {} {
showstuff $commitidx
set drawmsecs [expr {[clock clicks -milliseconds] - $startmsecs}]
showstuff $commitidx
set drawmsecs [expr {[clock clicks -milliseconds] - $startmsecs}]
- puts "overall $drawmsecs ms for $numcommits commits"
+
#
puts "overall $drawmsecs ms for $numcommits commits"
}
proc findmatches {f} {
}
proc findmatches {f} {