aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2007-06-12 00:05:24 -0700
committerJunio C Hamano <gitster@pobox.com>2007-06-12 00:05:24 -0700
commit31c74ca67162674e3ff8fcc294b75881c3e7cc15 (patch)
treef89e59d93c018800658d7ae0016cdac64f1faef3
parentc288a2f1316b642ff073d4213cf691297610503c (diff)
parent39fa2a983d55b37759b99e67f9f1892879efb775 (diff)
downloadgit-31c74ca67162674e3ff8fcc294b75881c3e7cc15.tar.gz
git-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
-rwxr-xr-xgit-gui/GIT-VERSION-GEN2
-rwxr-xr-xgit-gui/git-gui.sh5
-rw-r--r--git-gui/lib/blame.tcl1
-rw-r--r--git-gui/lib/browser.tcl1
-rw-r--r--git-gui/lib/class.tcl25
-rw-r--r--git-gui/lib/console.tcl2
-rw-r--r--git-gui/lib/merge.tcl5
7 files changed, 28 insertions, 13 deletions
diff --git a/git-gui/GIT-VERSION-GEN b/git-gui/GIT-VERSION-GEN
index 25647c806..eee495a98 100755
--- a/git-gui/GIT-VERSION-GEN
+++ b/git-gui/GIT-VERSION-GEN
@@ -78,5 +78,3 @@ test "$VN" = "$VC" || {
echo >&2 "GITGUI_VERSION = $VN"
echo "GITGUI_VERSION = $VN" >$GVF
}
-
-
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index dfb4b955e..97de595f2 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -471,7 +471,8 @@ proc rescan {after {honor_trustmtime 1}} {
if {![$ui_comm edit modified]
|| [string trim [$ui_comm get 0.0 end]] eq {}} {
- if {[load_message GITGUI_MSG]} {
+ if {[string match amend* $commit_type]} {
+ } elseif {[load_message GITGUI_MSG]} {
} elseif {[load_message MERGE_MSG]} {
} elseif {[load_message SQUASH_MSG]} {
}
@@ -1621,7 +1622,7 @@ unset browser doc_path doc_url
# -- Standard bindings
#
-bind . <Destroy> {if {{%W} eq {.}} do_quit}
+wm protocol . WM_DELETE_WINDOW do_quit
bind all <$M1B-Key-q> do_quit
bind all <$M1B-Key-Q> do_quit
bind all <$M1B-Key-w> {destroy [winfo toplevel %W]}
diff --git a/git-gui/lib/blame.tcl b/git-gui/lib/blame.tcl
index 98687c77d..139171d39 100644
--- a/git-gui/lib/blame.tcl
+++ b/git-gui/lib/blame.tcl
@@ -289,7 +289,6 @@ constructor new {i_commit i_path} {
bind $w_cviewer <Button-1> [list focus $w_cviewer]
bind $top <Visibility> [list focus $top]
- bind $w_file <Destroy> [list delete_this $this]
grid configure $w.header -sticky ew
grid configure $w.file_pane -sticky nsew
diff --git a/git-gui/lib/browser.tcl b/git-gui/lib/browser.tcl
index fd86b1121..3d6341bcc 100644
--- a/git-gui/lib/browser.tcl
+++ b/git-gui/lib/browser.tcl
@@ -70,7 +70,6 @@ constructor new {commit} {
bind $w_list <Right> break
bind $w_list <Visibility> [list focus $w_list]
- bind $w_list <Destroy> [list delete_this $this]
set w $w_list
_ls $this $browser_commit
return $this
diff --git a/git-gui/lib/class.tcl b/git-gui/lib/class.tcl
index 88b056522..9d298d0dc 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"
}
-
diff --git a/git-gui/lib/console.tcl b/git-gui/lib/console.tcl
index 8c112f3a8..ce25d92ca 100644
--- a/git-gui/lib/console.tcl
+++ b/git-gui/lib/console.tcl
@@ -17,7 +17,7 @@ constructor new {short_title long_title} {
method _init {} {
global M1B
- make_toplevel top w
+ make_toplevel top w -autodelete 0
wm title $top "[appname] ([reponame]): $t_short"
set console_cr 1.0
diff --git a/git-gui/lib/merge.tcl b/git-gui/lib/merge.tcl
index 24ed24b3d..ae0389df5 100644
--- a/git-gui/lib/merge.tcl
+++ b/git-gui/lib/merge.tcl
@@ -125,7 +125,8 @@ Please select fewer branches. To merge more than 15 branches, merge the branche
set cons [console::new "Merge" $msg]
console::exec $cons $cmd \
[namespace code [list _finish $revcnt $cons]]
- bind $w <Destroy> {}
+
+ wm protocol $w WM_DELETE_WINDOW {}
destroy $w
}
@@ -250,7 +251,7 @@ proc dialog {} {
bind $w <$M1B-Key-Return> $_start
bind $w <Visibility> "grab $w; focus $w.source.l"
bind $w <Key-Escape> "unlock_index;destroy $w"
- bind $w <Destroy> unlock_index
+ wm protocol $w WM_DELETE_WINDOW "unlock_index;destroy $w"
wm title $w "[appname] ([reponame]): Merge"
tkwait window $w
}