Skip to content

Commit

Permalink
gitk: Avoid Tcl error when switching views
Browse files Browse the repository at this point in the history
Michele Ballabio <barra_cuda@katamail.com> pointed out that gitk
sometimes throws a Tcl error (can't read "yscreen") when switching
views, and proposed a patch.  This is a different way of fixing it
which is a bit neater.  Basically, in showview we only set yscreen if
the selected commit is on screen to start with, and then we only
scroll the canvas to bring it onscreen if yscreen is set and the
same commit exists in the new view.

Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Paul Mackerras committed Mar 11, 2008
1 parent cb8329a commit 494d3b8
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions gitk
Original file line number Diff line number Diff line change
Expand Up @@ -2102,8 +2102,6 @@ proc showview {n} {
set ybot [expr {[lindex $span 1] * $ymax}]
if {$ytop < $y && $y < $ybot} {
set yscreen [expr {$y - $ytop}]
} else {
set yscreen [expr {($ybot - $ytop) / 2}]
}
} elseif {[info exists pending_select]} {
set selid $pending_select
Expand Down Expand Up @@ -2164,7 +2162,7 @@ proc showview {n} {
set yf 0
set row {}
set selectfirst 0
if {$selid ne {} && [info exists commitrow($n,$selid)]} {
if {[info exists yscreen] && [info exists commitrow($n,$selid)]} {
set row $commitrow($n,$selid)
# try to get the selected row in the same position on the screen
set ymax [lindex [$canv cget -scrollregion] 3]
Expand Down

0 comments on commit 494d3b8

Please sign in to comment.