summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: cb8329a)
raw | patch | inline | side by side (parent: cb8329a)
author | Paul Mackerras <paulus@samba.org> | |
Tue, 11 Mar 2008 11:11:19 +0000 (22:11 +1100) | ||
committer | Paul Mackerras <paulus@samba.org> | |
Tue, 11 Mar 2008 11:11:19 +0000 (22:11 +1100) |
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>
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>
gitk | patch | blob | history |
index 5d9f589f02946f7c821ae9a563e8f917f7faf28a..84ab02e15f6bdecdd04e8835e3aefd0875efea44 100755 (executable)
--- a/gitk
+++ b/gitk
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
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]