summaryrefslogtreecommitdiff
path: root/git-gui/lib/class.tcl
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2007-06-12 00:05:24 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2007-06-12 00:05:24 -0700
commit31c74ca67162674e3ff8fcc294b75881c3e7cc15 (patch)
treef89e59d93c018800658d7ae0016cdac64f1faef3 /git-gui/lib/class.tcl
parentMerge branch 'maint' of git://repo.or.cz/git-gui into maint (diff)
parentgit-gui: Save geometry before the window layout is damaged (diff)
downloadtgif-31c74ca67162674e3ff8fcc294b75881c3e7cc15.tar.xz
Merge branch 'maint' of git://repo.or.cz/git-gui into maint
* 'maint' of git://repo.or.cz/git-gui: git-gui: Save geometry before the window layout is damaged git-gui: Give amend precedence to HEAD over MERGE_MSG git-gui: Include 'war on whitespace' fixes from git.git
Diffstat (limited to 'git-gui/lib/class.tcl')
-rw-r--r--git-gui/lib/class.tcl25
1 files changed, 21 insertions, 4 deletions
diff --git a/git-gui/lib/class.tcl b/git-gui/lib/class.tcl
index 88b056522a..9d298d0dcc 100644
--- a/git-gui/lib/class.tcl
+++ b/git-gui/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]
+ "
+ }
}
@@ -151,4 +169,3 @@ auto_mkindex_parser::command constructor {name args} {
[format { [list source [file join $dir %s]]} \
[file split $scriptFile]] "\n"
}
-