gitk: Fix some bugs in the new cherry-picking code
When inserting the new commit row for the cherry-picked commit, we weren't advancing the selected line (if there is one), and we weren't updating commitlisted properly.
This commit is contained in:
parent
d1e46756d3
commit
561d038ab8
8
gitk
8
gitk
@ -3314,14 +3314,14 @@ proc finishcommits {} {
|
||||
catch {unset pending_select}
|
||||
}
|
||||
|
||||
# Inserting a new commit as the child of the commit on row $row.
|
||||
# Insert a new commit as the child of the commit on row $row.
|
||||
# The new commit will be displayed on row $row and the commits
|
||||
# on that row and below will move down one row.
|
||||
proc insertrow {row newcmit} {
|
||||
global displayorder parentlist childlist commitlisted
|
||||
global commitrow curview rowidlist rowoffsets numcommits
|
||||
global rowrangelist idrowranges rowlaidout rowoptim numcommits
|
||||
global linesegends
|
||||
global linesegends selectedline
|
||||
|
||||
if {$row >= $numcommits} {
|
||||
puts "oops, inserting new row $row but only have $numcommits rows"
|
||||
@ -3334,6 +3334,7 @@ proc insertrow {row newcmit} {
|
||||
lappend kids $newcmit
|
||||
lset childlist $row $kids
|
||||
set childlist [linsert $childlist $row {}]
|
||||
set commitlisted [linsert $commitlisted $row 1]
|
||||
set l [llength $displayorder]
|
||||
for {set r $row} {$r < $l} {incr r} {
|
||||
set id [lindex $displayorder $r]
|
||||
@ -3409,6 +3410,9 @@ proc insertrow {row newcmit} {
|
||||
incr rowoptim
|
||||
incr numcommits
|
||||
|
||||
if {[info exists selectedline] && $selectedline >= $row} {
|
||||
incr selectedline
|
||||
}
|
||||
redisplay
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user