Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
gitk: Improve the behaviour of the initial selection
author
Paul Mackerras
<paulus@samba.org>
Sat, 16 Jun 2007 11:51:08 +0000
(21:51 +1000)
committer
Paul Mackerras
<paulus@samba.org>
Sat, 23 Jun 2007 10:55:34 +0000
(20:55 +1000)
It used to be that if you clicked on a line while gitk was still drawing
stuff, it would immediately re-select the first line of the display.
This fixes that.
Signed-off-by: Paul Mackerras <paulus@samba.org>
gitk
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
3fc4279
)
diff --git
a/gitk
b/gitk
index a67137443b2c3cf9083c4ae5c07298032388f01c..b3df24d6963a27b021f4ed1e91798350dac06a42 100755
(executable)
--- a/
gitk
+++ b/
gitk
@@
-1671,7
+1671,7
@@
proc showview {n} {
global pending_select phase
global commitidx rowlaidout rowoptim linesegends
global commfd nextupdate
global pending_select phase
global commitidx rowlaidout rowoptim linesegends
global commfd nextupdate
- global selectedview
+ global selectedview
selectfirst
global vparentlist vchildlist vdisporder vcmitlisted
global hlview selectedhlview
global vparentlist vchildlist vdisporder vcmitlisted
global hlview selectedhlview
@@
-1689,6
+1689,9
@@
proc showview {n} {
} else {
set yscreen [expr {($ybot - $ytop) / 2}]
}
} else {
set yscreen [expr {($ybot - $ytop) / 2}]
}
+ } elseif {[info exists pending_select]} {
+ set selid $pending_select
+ unset pending_select
}
unselectline
normalline
}
unselectline
normalline
@@
-1723,7
+1726,9
@@
proc showview {n} {
.bar.view entryconf Delete* -state [expr {$n == 0? "disabled": "normal"}]
if {![info exists viewdata($n)]} {
.bar.view entryconf Delete* -state [expr {$n == 0? "disabled": "normal"}]
if {![info exists viewdata($n)]} {
- set pending_select $selid
+ if {$selid ne {}} {
+ set pending_select $selid
+ }
getcommits
return
}
getcommits
return
}
@@
-1757,7
+1762,8
@@
proc showview {n} {
set row 0
setcanvscroll
set yf 0
set row 0
setcanvscroll
set yf 0
- set row 0
+ set row {}
+ set selectfirst 0
if {$selid ne {} && [info exists commitrow($n,$selid)]} {
set row $commitrow($n,$selid)
# try to get the selected row in the same position on the screen
if {$selid ne {} && [info exists commitrow($n,$selid)]} {
set row $commitrow($n,$selid)
# try to get the selected row in the same position on the screen
@@
-1770,7
+1776,17
@@
proc showview {n} {
}
allcanvs yview moveto $yf
drawvisible
}
allcanvs yview moveto $yf
drawvisible
- selectline $row 0
+ if {$row ne {}} {
+ selectline $row 0
+ } elseif {$selid ne {}} {
+ set pending_select $selid
+ } else {
+ if {$numcommits > 0} {
+ selectline 0 0
+ } else {
+ set selectfirst 1
+ }
+ }
if {$phase ne {}} {
if {$phase eq "getcommits"} {
show_status "Reading commits..."
if {$phase ne {}} {
if {$phase eq "getcommits"} {
show_status "Reading commits..."
@@
-2407,7
+2423,7
@@
proc initlayout {} {
global nextcolor
global parentlist childlist children
global colormap rowtextx
global nextcolor
global parentlist childlist children
global colormap rowtextx
- global linesegends
+ global linesegends
selectfirst
set numcommits 0
set displayorder {}
set numcommits 0
set displayorder {}
@@
-2427,6
+2443,7
@@
proc initlayout {} {
catch {unset rowtextx}
catch {unset idrowranges}
set linesegends {}
catch {unset rowtextx}
catch {unset idrowranges}
set linesegends {}
+ set selectfirst 1
}
proc setcanvscroll {} {
}
proc setcanvscroll {} {
@@
-2495,6
+2512,7
@@
proc layoutmore {tmax} {
proc showstuff {canshow} {
global numcommits commitrow pending_select selectedline
global linesegends idrowranges idrangedrawn curview
proc showstuff {canshow} {
global numcommits commitrow pending_select selectedline
global linesegends idrowranges idrangedrawn curview
+ global displayorder selectfirst
if {$numcommits == 0} {
global phase
if {$numcommits == 0} {
global phase
@@
-2533,8
+2551,13
@@
proc showstuff {canshow} {
$commitrow($curview,$pending_select) < $numcommits} {
selectline $commitrow($curview,$pending_select) 1
}
$commitrow($curview,$pending_select) < $numcommits} {
selectline $commitrow($curview,$pending_select) 1
}
- if {![info exists selectedline] && ![info exists pending_select]} {
- selectline 0 1
+ if {$selectfirst} {
+ if {[info exists selectedline] || [info exists pending_select]} {
+ set selectfirst 0
+ } else {
+ selectline 0 1
+ set selectfirst 0
+ }
}
}
}
}
@@
-3551,7
+3574,6
@@
proc drawrest {} {
global rowlaidout commitidx curview
global pending_select
global rowlaidout commitidx curview
global pending_select
- set row $rowlaidout
layoutrows $rowlaidout $commitidx($curview) 1
layouttail
optimize_rows $row 0 $commitidx($curview)
layoutrows $rowlaidout $commitidx($curview) 1
layouttail
optimize_rows $row 0 $commitidx($curview)