diff options
author | Junio C Hamano <gitster@pobox.com> | 2007-06-12 00:14:47 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-06-12 00:14:47 -0700 |
commit | 1924d64f6e070edf1ad1949bf2eb95d4d2451f30 (patch) | |
tree | af77317e800b35c312ef562ffb72fa7c045af738 /git-gui/lib/class.tcl | |
parent | 75d8ff138dd640a117c6aaa625d0f6b835adbd3a (diff) | |
parent | 03e1bed4a4887607ae90cd121cb4851d10ef2e8b (diff) | |
download | git-1924d64f6e070edf1ad1949bf2eb95d4d2451f30.tar.gz |
Merge branch 'master' of git://repo.or.cz/git-gui
* 'master' 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 | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/git-gui/lib/class.tcl b/git-gui/lib/class.tcl index 72494c1a1e..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] + " + } } |