Skip to content

Commit

Permalink
gitk: Fix bug where current row number display stops working
Browse files Browse the repository at this point in the history
The display of the current row number would stop working if the user
clicked on a line, or if selectedline got unset for any other reason,
because the trace on it got lost when it was unselected.  This fixes
it by changing the places that unset selectedline to set it to the
empty string instead, and the places that tested for it being set or
unset to compare it with the empty string.  Thus it never gets unset
now.  This actually simplified the code in a few places since it can
be compared for equality with a row number now without first testing
if it is set.

Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Paul Mackerras committed May 20, 2008
1 parent 64dc208 commit 94b4a69
Showing 1 changed file with 23 additions and 23 deletions.
46 changes: 23 additions & 23 deletions gitk
Original file line number Diff line number Diff line change
Expand Up @@ -495,7 +495,7 @@ proc reloadcommits {} {
stop_rev_list $curview
}
resetvarcs $curview
catch {unset selectedline}
set selectedline {}
catch {unset currentid}
catch {unset thickerline}
catch {unset treediffs}
Expand Down Expand Up @@ -927,7 +927,7 @@ proc removefakerow {id} {
modify_arc $v $a $i
if {[info exist currentid] && $id eq $currentid} {
unset currentid
unset selectedline
set selectedline {}
}
if {[info exists targetid] && $targetid eq $id} {
set targetid $p
Expand Down Expand Up @@ -1838,7 +1838,7 @@ proc makewindow {} {
pack .tf.bar.rowlabel .tf.bar.rownum .tf.bar.rowlabel2 .tf.bar.numcommits \
-side left
global selectedline
trace add variable selectedline {write unset} selectedline_change
trace add variable selectedline write selectedline_change

# Status label and progress bar
set statusw .tf.bar.status
Expand Down Expand Up @@ -2185,7 +2185,7 @@ proc windows_mousewheel_redirector {W X Y D} {
proc selectedline_change {n1 n2 op} {
global selectedline rownumsel

if {$op eq "unset"} {
if {$selectedline eq {}} {
set rownumsel {}
} else {
set rownumsel [expr {$selectedline + 1}]
Expand Down Expand Up @@ -3274,7 +3274,7 @@ proc showview {n} {
set ytop [expr {[lindex $span 0] * $ymax}]
set ybot [expr {[lindex $span 1] * $ymax}]
set yscreen [expr {($ybot - $ytop) / 2}]
if {[info exists selectedline]} {
if {$selectedline ne {}} {
set selid $currentid
set y [yc $selectedline]
if {$ytop < $y && $y < $ybot} {
Expand Down Expand Up @@ -3388,7 +3388,7 @@ proc bolden {row font} {

lappend boldrows $row
$canv itemconf $linehtag($row) -font $font
if {[info exists selectedline] && $row == $selectedline} {
if {$row == $selectedline} {
$canv delete secsel
set t [eval $canv create rect [$canv bbox $linehtag($row)] \
-outline {{}} -tags secsel \
Expand All @@ -3402,7 +3402,7 @@ proc bolden_name {row font} {

lappend boldnamerows $row
$canv2 itemconf $linentag($row) -font $font
if {[info exists selectedline] && $row == $selectedline} {
if {$row == $selectedline} {
$canv2 delete secsel
set t [eval $canv2 create rect [$canv2 bbox $linentag($row)] \
-outline {{}} -tags secsel \
Expand Down Expand Up @@ -3831,7 +3831,7 @@ proc askrelhighlight {row id} {
global descendent highlight_related iddrawn rhighlights
global selectedline ancestor

if {![info exists selectedline]} return
if {$selectedline eq {}} return
set isbold 0
if {$highlight_related eq [mc "Descendant"] ||
$highlight_related eq [mc "Not descendant"]} {
Expand Down Expand Up @@ -4005,7 +4005,7 @@ proc visiblerows {} {

proc layoutmore {} {
global commitidx viewcomplete curview
global numcommits pending_select selectedline curview
global numcommits pending_select curview
global lastscrollset lastscrollrows commitinterest

if {$lastscrollrows < 100 || $viewcomplete($curview) ||
Expand Down Expand Up @@ -4916,7 +4916,7 @@ proc drawcmittext {id row col} {
-text $name -font $nfont -tags text]
set linedtag($row) [$canv3 create text 3 $y -anchor w -fill $fgcolor \
-text $date -font mainfont -tags text]
if {[info exists selectedline] && $selectedline == $row} {
if {$selectedline == $row} {
make_secsel $row
}
set xr [expr {$xt + [font measure $font $headline]}]
Expand Down Expand Up @@ -5107,7 +5107,7 @@ proc drawvisible {} {
if {$endrow >= $vrowmod($curview)} {
update_arcrows $curview
}
if {[info exists selectedline] &&
if {$selectedline ne {} &&
$row <= $selectedline && $selectedline <= $endrow} {
set targetrow $selectedline
} elseif {[info exists targetid]} {
Expand Down Expand Up @@ -5427,7 +5427,7 @@ proc dofind {{dirn 1} {wrap 1}} {
}
focus .
if {$findstring eq {} || $numcommits == 0} return
if {![info exists selectedline]} {
if {$selectedline eq {}} {
set findstartline [lindex [visiblerows] [expr {$dirn < 0}]]
} else {
set findstartline $selectedline
Expand Down Expand Up @@ -5623,7 +5623,7 @@ proc markmatches {canv l str tag matches font row} {
[expr {$x0+$xlen+2}] $y1 \
-outline {} -tags [list match$l matches] -fill yellow]
$canv lower $t
if {[info exists selectedline] && $row == $selectedline} {
if {$row == $selectedline} {
$canv raise $t secsel
}
}
Expand Down Expand Up @@ -5782,7 +5782,7 @@ proc appendrefs {pos ids var} {
proc dispneartags {delay} {
global selectedline currentid showneartags tagphase

if {![info exists selectedline] || !$showneartags} return
if {$selectedline eq {} || !$showneartags} return
after cancel dispnexttag
if {$delay} {
after 200 dispnexttag
Expand All @@ -5796,7 +5796,7 @@ proc dispneartags {delay} {
proc dispnexttag {} {
global selectedline currentid showneartags tagphase ctext

if {![info exists selectedline] || !$showneartags} return
if {$selectedline eq {} || !$showneartags} return
switch -- $tagphase {
0 {
set dtags [desctags $currentid]
Expand Down Expand Up @@ -6018,7 +6018,7 @@ proc sellastline {} {
proc selnextline {dir} {
global selectedline
focus .
if {![info exists selectedline]} return
if {$selectedline eq {}} return
set l [expr {$selectedline + $dir}]
unmarkmatches
selectline $l 1
Expand All @@ -6033,7 +6033,7 @@ proc selnextpage {dir} {
}
allcanvs yview scroll [expr {$dir * $lpp}] units
drawvisible
if {![info exists selectedline]} return
if {$selectedline eq {}} return
set l [expr {$selectedline + $dir * $lpp}]
if {$l < 0} {
set l 0
Expand All @@ -6047,7 +6047,7 @@ proc selnextpage {dir} {
proc unselectline {} {
global selectedline currentid

catch {unset selectedline}
set selectedline {}
catch {unset currentid}
allcanvs delete secsel
rhighlight_none
Expand All @@ -6056,7 +6056,7 @@ proc unselectline {} {
proc reselectline {} {
global selectedline

if {[info exists selectedline]} {
if {$selectedline ne {}} {
selectline $selectedline 0
}
}
Expand Down Expand Up @@ -6868,7 +6868,7 @@ proc redisplay {} {
setcanvscroll
allcanvs yview moveto [lindex $span 0]
drawvisible
if {[info exists selectedline]} {
if {$selectedline ne {}} {
selectline $selectedline 0
allcanvs yview moveto [lindex $span 0]
}
Expand Down Expand Up @@ -7189,8 +7189,7 @@ proc rowmenu {x y id} {

stopfinding
set rowmenuid $id
if {![info exists selectedline]
|| [rowofcommit $id] eq $selectedline} {
if {$selectedline eq {} || [rowofcommit $id] eq $selectedline} {
set state disabled
} else {
set state normal
Expand All @@ -7214,7 +7213,7 @@ proc rowmenu {x y id} {
proc diffvssel {dirn} {
global rowmenuid selectedline

if {![info exists selectedline]} return
if {$selectedline eq {}} return
if {$dirn} {
set oldid [commitonrow $selectedline]
set newid $rowmenuid
Expand Down Expand Up @@ -9890,6 +9889,7 @@ set viewperm(0) 0
set viewargs(0) {}
set viewargscmd(0) {}

set selectedline {}
set numcommits 0
set loginstance 0
set cmdlineok 0
Expand Down

0 comments on commit 94b4a69

Please sign in to comment.