Skip to content

Commit

Permalink
gitk: Fix problem with target row not being in scroll region
Browse files Browse the repository at this point in the history
Since we limit the rate at which we do updates to the canvas scrolling
regions, it's possible to get into selectline for a row that is
outside the currently-set scrolling region.  When this happens,
selectline can't scroll to show the selected line, and as a
consequence, drawvisible chooses some other bogus row to be the
target row.

This fixes it by calling setcanvscroll from selectline in this case.
We also set selectedline (and currentid) before calling drawvisible
so that drawvisible makes the right choice of target row.

Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Paul Mackerras committed Mar 7, 2008
1 parent d76afb1 commit c30acc7
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions gitk
Original file line number Diff line number Diff line change
Expand Up @@ -5429,7 +5429,7 @@ proc selectline {l isnew} {
global commentend idtags linknum
global mergemax numcommits pending_select
global cmitmode showneartags allcommits
global targetrow targetid
global targetrow targetid lastscrollrows

catch {unset pending_select}
$canv delete hover
Expand All @@ -5440,6 +5440,11 @@ proc selectline {l isnew} {
set id [commitonrow $l]
set targetid $id
set targetrow $l
set selectedline $l
set currentid $id
if {$lastscrollrows < $numcommits} {
setcanvscroll
}

set y [expr {$canvy0 + $l * $linespc}]
set ymax [lindex [$canv cget -scrollregion] 3]
Expand Down Expand Up @@ -5483,8 +5488,6 @@ proc selectline {l isnew} {
addtohistory [list selbyid $id]
}

set selectedline $l
set currentid $id
$sha1entry delete 0 end
$sha1entry insert 0 $id
$sha1entry selection from 0
Expand Down

0 comments on commit c30acc7

Please sign in to comment.