summaryrefslogtreecommitdiffstats
path: root/unix
diff options
context:
space:
mode:
authormdejong <mdejong>2002-05-27 22:54:42 (GMT)
committermdejong <mdejong>2002-05-27 22:54:42 (GMT)
commit972e97ee22e87ef707a976111cddbfe80b4737fc (patch)
tree4df8b5fe8d050ea301707b1a94f1f4fd55265556 /unix
parent1c823cfbaafe492b3bd9a506d782804f797bcc2e (diff)
downloadtk-972e97ee22e87ef707a976111cddbfe80b4737fc.zip
tk-972e97ee22e87ef707a976111cddbfe80b4737fc.tar.gz
tk-972e97ee22e87ef707a976111cddbfe80b4737fc.tar.bz2
* changes: Document [wm transient .t .t] error.
* tests/wm.test: Check that setting a window as a transient of itself raises an error. Check that passing a non-toplevel window to the wm transient command uses the enclosing toplevel. * unix/tkUnixWm.c (Tk_WmCmd): Raise an error if the user tries to make a toplevel a transient of itself. * win/tkWinWm.c (Tk_WmCmd): Raise an error if the user tries to make a toplevel a transient of itself. Test for other error before checking for the transient self error.
Diffstat (limited to 'unix')
-rw-r--r--unix/tkUnixWm.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/unix/tkUnixWm.c b/unix/tkUnixWm.c
index 458c80f..50bd41a 100644
--- a/unix/tkUnixWm.c
+++ b/unix/tkUnixWm.c
@@ -12,7 +12,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkUnixWm.c,v 1.19 2002/05/27 20:34:32 mdejong Exp $
+ * RCS: @(#) $Id: tkUnixWm.c,v 1.20 2002/05/27 22:54:42 mdejong Exp $
*/
#include "tkPort.h"
@@ -2014,7 +2014,14 @@ Tk_WmCmd(clientData, interp, argc, argv)
return TCL_ERROR;
}
- wmPtr->masterPtr = masterPtr;
+ if (masterPtr == winPtr) {
+ Tcl_AppendResult(interp, "can't make \"", Tk_PathName(winPtr),
+ "\" its own master",
+ (char *) NULL);
+ return TCL_ERROR;
+ } else if (masterPtr != wmPtr->masterPtr) {
+ wmPtr->masterPtr = masterPtr;
+ }
}
if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
Window xwin = (wmPtr->masterPtr == NULL) ? None :