Skip to content

Commit

Permalink
gitk: Fix various bugs in the view support
Browse files Browse the repository at this point in the history
- don't re-read refs when switching views, it's too slow; just do
  it if the user did File->Update
- make the view menu use the uifont
- if we have a graph line selected, unselect it before changing the view
- if a row is selected and appears in the new view, but we have to
  read in the new view, select that row when we come across it
- if no row was previously selected, or if we don't find the previously
  selected row in the new view, select the first row

Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Paul Mackerras committed Apr 6, 2006
1 parent f916ee4 commit fdedbcf
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions gitk
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ proc updatecommits {} {
set curview -1
catch {unset viewdata($n)}
parse_args $revtreeargs
readrefs
showview $n
}

Expand Down Expand Up @@ -351,7 +352,8 @@ proc error_popup msg {
}

proc makewindow {} {
global canv canv2 canv3 linespc charspc ctext cflist textfont mainfont uifont
global canv canv2 canv3 linespc charspc ctext cflist
global textfont mainfont uifont
global findtype findtypemenu findloc findstring fstring geometry
global entries sha1entry sha1string sha1but
global maincursor textcursor curtextcursor
Expand All @@ -369,7 +371,7 @@ proc makewindow {} {
.bar add cascade -label "Edit" -menu .bar.edit
.bar.edit add command -label "Preferences" -command doprefs
.bar.edit configure -font $uifont
menu .bar.view
menu .bar.view -font $uifont
.bar add cascade -label "View" -menu .bar.view
.bar.view add command -label "New view..." -command newview
.bar.view add command -label "Delete view" -command delview -state disabled
Expand Down Expand Up @@ -907,6 +909,7 @@ proc showview {n} {
}
}
unselectline
normalline
stopfindproc
if {$curview >= 0 && $phase eq {} && ![info exists viewdata($curview)]} {
set viewdata($curview) \
Expand All @@ -916,7 +919,6 @@ proc showview {n} {
catch {unset matchinglines}
catch {unset treediffs}
clear_display
readrefs

set curview $n
.bar.view entryconf 2 -state [expr {$n == 0? "disabled": "normal"}]
Expand Down Expand Up @@ -1159,7 +1161,7 @@ proc layoutmore {} {
}

proc showstuff {canshow} {
global numcommits commitrow pending_select
global numcommits commitrow pending_select selectedline
global linesegends idrowranges idrangedrawn

if {$numcommits == 0} {
Expand Down Expand Up @@ -1201,6 +1203,9 @@ proc showstuff {canshow} {
$commitrow($pending_select) < $numcommits} {
selectline $commitrow($pending_select) 1
}
if {![info exists selectedline] && ![info exists pending_select]} {
selectline 0 1
}
}

proc layoutrows {row endrow last} {
Expand Down Expand Up @@ -1989,7 +1994,7 @@ proc xcoord {i level ln} {
proc finishcommits {} {
global commitidx phase
global canv mainfont ctext maincursor textcursor
global findinprogress
global findinprogress pending_select

if {$commitidx > 0} {
drawrest
Expand All @@ -2003,6 +2008,7 @@ proc finishcommits {} {
settextcursor $textcursor
}
set phase {}
catch {unset pending_select}
}

# Don't change the text pane cursor if it is currently the hand cursor,
Expand All @@ -2021,12 +2027,16 @@ proc drawrest {} {
global startmsecs
global canvy0 numcommits linespc
global rowlaidout commitidx
global pending_select

set row $rowlaidout
layoutrows $rowlaidout $commitidx 1
layouttail
optimize_rows $row 0 $commitidx
showstuff $commitidx
if {[info exists pending_select]} {
selectline 0 1
}

set drawmsecs [expr {[clock clicks -milliseconds] - $startmsecs}]
#puts "overall $drawmsecs ms for $numcommits commits"
Expand Down

0 comments on commit fdedbcf

Please sign in to comment.