aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2008-02-20 23:37:07 -0500
committerShawn O. Pearce <spearce@spearce.org>2008-02-20 23:39:32 -0500
commitaba15f7f592c302196401d17a42c772d744555b4 (patch)
treedf2a02bf4a33b8d843545069fd2911ae58db1ac1
parent2c2a3782c5092f232e71e8d97272b82cdca0664e (diff)
downloadgit-aba15f7f592c302196401d17a42c772d744555b4.tar.gz
git-aba15f7f592c302196401d17a42c772d744555b4.tar.xz
git-gui: Ensure error dialogs always appear over all other windows
If we are opening an error dialog we want it to appear above all of the other windows, even those that we may have opened with a grab to make the window modal. Failure to do so may allow an error dialog to open up (and grab focus!) under an existing toplevel, making the user think git-gui has frozen up and is unresponsive, as they cannot get to the dialog. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
-rw-r--r--lib/error.tcl18
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/error.tcl b/lib/error.tcl
index 0fdd7531d..45800d549 100644
--- a/lib/error.tcl
+++ b/lib/error.tcl
@@ -1,6 +1,10 @@
# git-gui branch (create/delete) support
# Copyright (C) 2006, 2007 Shawn Pearce
+proc _error_parent {} {
+ return [grab current .]
+}
+
proc error_popup {msg} {
set title [appname]
if {[reponame] ne {}} {
@@ -11,8 +15,8 @@ proc error_popup {msg} {
-type ok \
-title [append "$title: " [mc "error"]] \
-message $msg]
- if {[winfo ismapped .]} {
- lappend cmd -parent .
+ if {[winfo ismapped [_error_parent]]} {
+ lappend cmd -parent [_error_parent]
}
eval $cmd
}
@@ -27,13 +31,13 @@ proc warn_popup {msg} {
-type ok \
-title [append "$title: " [mc "warning"]] \
-message $msg]
- if {[winfo ismapped .]} {
- lappend cmd -parent .
+ if {[winfo ismapped [_error_parent]]} {
+ lappend cmd -parent [_error_parent]
}
eval $cmd
}
-proc info_popup {msg {parent .}} {
+proc info_popup {msg} {
set title [appname]
if {[reponame] ne {}} {
append title " ([reponame])"
@@ -56,8 +60,8 @@ proc ask_popup {msg} {
-type yesno \
-title $title \
-message $msg]
- if {[winfo ismapped .]} {
- lappend cmd -parent .
+ if {[winfo ismapped [_error_parent]]} {
+ lappend cmd -parent [_error_parent]
}
eval $cmd
}