diff options
author | Junio C Hamano <gitster@pobox.com> | 2007-06-12 00:05:24 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-06-12 00:05:24 -0700 |
commit | 31c74ca67162674e3ff8fcc294b75881c3e7cc15 (patch) | |
tree | f89e59d93c018800658d7ae0016cdac64f1faef3 /git-gui/lib/class.tcl | |
parent | Merge branch 'maint' of git://repo.or.cz/git-gui into maint (diff) | |
parent | git-gui: Save geometry before the window layout is damaged (diff) | |
download | tgif-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.tcl | 25 |
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" } - |