diff options
-rw-r--r-- | library/bgerror.tcl | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/library/bgerror.tcl b/library/bgerror.tcl index 15f9448..f9dc8d8 100644 --- a/library/bgerror.tcl +++ b/library/bgerror.tcl @@ -4,7 +4,7 @@ # posts a dialog box with the error message and gives the user a chance # to see a more detailed stack trace. # -# RCS: @(#) $Id: bgerror.tcl,v 1.6 2000/04/10 23:19:58 ericm Exp $ +# RCS: @(#) $Id: bgerror.tcl,v 1.7 2000/04/11 18:19:06 ericm Exp $ # # Copyright (c) 1992-1994 The Regents of the University of California. # Copyright (c) 1994-1996 Sun Microsystems, Inc. @@ -24,21 +24,6 @@ proc bgerror err { global errorInfo tcl_platform - # Normally, the bgerror dialog is made transient with respect to "." (due - # to the implementation of tk_dialog). On some systems (like Windows), - # when a window is withdraw or iconified, it's transient windows go with - # it. Unfortunately, there is also a grab on the dialog (again because of - # the implementation of tk_dialog). So if "." is withdrawn or iconified - # and the user gets a bgerror, the app will hang, for no apparent reason. - # - # One (somewhat hacky) way to address this is to un-transient the dialog - # if "." is withdrawn or iconified. - after idle { - if { ![winfo viewable .bgerrorDialog] } { - wm transient .bgerrorDialog {} - } - } - # save errorInfo which would be erased in the catch below otherwise. set info $errorInfo ; @@ -55,6 +40,21 @@ proc bgerror err { set ret [catch {tkerror $err} msg]; if {$ret != 1} {return -code $ret $msg} + # Normally, the bgerror dialog is made transient with respect to "." (due + # to the implementation of tk_dialog). On some systems (like Windows), + # when a window is withdraw or iconified, it's transient windows go with + # it. Unfortunately, there is also a grab on the dialog (again because of + # the implementation of tk_dialog). So if "." is withdrawn or iconified + # and the user gets a bgerror, the app will hang, for no apparent reason. + # + # One (somewhat hacky) way to address this is to un-transient the dialog + # if "." is withdrawn or iconified. + after idle { + if { ![winfo viewable .bgerrorDialog] } { + wm transient .bgerrorDialog {} + } + } + # Ok the application's tkerror either failed or was not found # we use the default dialog then : if {$tcl_platform(platform) == "macintosh"} { |