return $w
}
-proc make_transient {window origin} {
+proc make_transient {window origin {geometry ""}} {
wm transient $window $origin
- # Windows fails to place transient windows normally, so
- # schedule a callback to center them on the parent.
- if {[tk windowingsystem] eq {win32}} {
+ if {$geometry ne ""} {
+ after idle [list wm geometry $window $geometry]
+ } elseif {[tk windowingsystem] eq {win32}} {
+ # Windows fails to place transient windows normally, so
+ # schedule a callback to center them on the parent.
after idle [list tk::PlaceWindow $window widget $origin]
}
}
puts $f "set geometry(pwsash1) \"[.tf.histframe.pwclist sashpos 1] 1\""
puts $f "set geometry(botwidth) [winfo width .bleft]"
puts $f "set geometry(botheight) [winfo height .bleft]"
+ unset -nocomplain geometry
+ global geometry
+ if {[info exists geometry(showrefs)]} {
+ puts $f "set geometry(showrefs) $geometry(showrefs)"
+ }
array set view_save {}
array set views {}
proc showrefs {} {
global showrefstop bgcolor fgcolor selectbgcolor
global bglist fglist reflistfilter reflist maincursor
+ global geometry
set top .showrefs
set showrefstop $top
}
ttk_toplevel $top
wm title $top [mc "Tags and heads: %s" [file tail [pwd]]]
- make_transient $top .
+ if {[info exists geometry(showrefs)]} {
+ make_transient $top . $geometry(showrefs)
+ } else {
+ make_transient $top .
+ }
text $top.list -background $bgcolor -foreground $fgcolor \
-selectbackground $selectbgcolor -font mainfont \
-xscrollcommand "$top.xsb set" -yscrollcommand "$top.ysb set" \
bind $top.list <ButtonRelease-1> {sel_reflist %W %x %y; break}
set reflist {}
refill_reflist
+ # avoid <Configure> being bound to child windows
+ bindtags $top [linsert [bindtags $top] 1 bind$top]
+ bind bind$top <Configure> {set geometry(showrefs) [wm geometry %W]}
}
proc sel_reflist {w x y} {