Anonymous avatar Anonymous committed aba15f7

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>;

Comments (0)

Files changed (1)

 # 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 {}} {
 		-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
 }
 		-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])"
 		-type yesno \
 		-title $title \
 		-message $msg]
-	if {[winfo ismapped .]} {
-		lappend cmd -parent .
+	if {[winfo ismapped [_error_parent]]} {
+		lappend cmd -parent [_error_parent]
 	}
 	eval $cmd
 }
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.