diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2007-06-12 03:58:11 (GMT) |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2007-06-12 03:58:11 (GMT) |
commit | 03e1bed4a4887607ae90cd121cb4851d10ef2e8b (patch) | |
tree | 166e015cd8b842fd28ddb138faa2ff7213528294 /lib/class.tcl | |
parent | aa751960178af04673f88adca4988f94ffd7f2dc (diff) | |
parent | 39fa2a983d55b37759b99e67f9f1892879efb775 (diff) | |
download | git-03e1bed4a4887607ae90cd121cb4851d10ef2e8b.zip git-03e1bed4a4887607ae90cd121cb4851d10ef2e8b.tar.gz git-03e1bed4a4887607ae90cd121cb4851d10ef2e8b.tar.bz2 |
Merge branch 'maint'
* maint:
git-gui: Save geometry before the window layout is damaged
git-gui: Give amend precedence to HEAD over MERGE_MSG
Diffstat (limited to 'lib/class.tcl')
-rw-r--r-- | lib/class.tcl | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/lib/class.tcl b/lib/class.tcl index 72494c1..9d298d0 100644 --- a/lib/class.tcl +++ b/lib/class.tcl @@ -120,10 +120,21 @@ proc delete_this {{t {}}} { if {[namespace exists $t]} {namespace delete $t} } -proc make_toplevel {t w} { - upvar $t top $w pfx +proc make_toplevel {t w args} { + upvar $t top $w pfx this this + + if {[llength $args] % 2} { + error "make_toplevel topvar winvar {options}" + } + set autodelete 1 + foreach {name value} $args { + switch -exact -- $name { + -autodelete {set autodelete $value} + default {error "unsupported option $name"} + } + } + if {[winfo ismapped .]} { - upvar this this regsub -all {::} $this {__} w set top .$w set pfx $top @@ -132,6 +143,13 @@ proc make_toplevel {t w} { set top . set pfx {} } + + if {$autodelete} { + wm protocol $top WM_DELETE_WINDOW " + [list delete_this $this] + [list destroy $top] + " + } } |