diff options
author | mdejong <mdejong> | 2002-06-24 20:34:40 (GMT) |
---|---|---|
committer | mdejong <mdejong> | 2002-06-24 20:34:40 (GMT) |
commit | b2d10e52b29a853f6617b873da1152ac86f25d98 (patch) | |
tree | c3ddfdff422760f0f504dc54ece65afb4b22f916 /tests/wm.test | |
parent | 5301e3774409c2ecde99877add0448e84c972c93 (diff) | |
download | tk-b2d10e52b29a853f6617b873da1152ac86f25d98.zip tk-b2d10e52b29a853f6617b873da1152ac86f25d98.tar.gz tk-b2d10e52b29a853f6617b873da1152ac86f25d98.tar.bz2 |
* tests/winWm.test: Verify that both an unmapped
and already mapped toplevel are raised and receive
the focus when deiconified.
* tests/wm.test: Add wm deiconify tests. Check that
a toplevel that has never been mapped is not mapped
by the deiconify command since it should be done
at idle by MapFrame.
* win/tkWinWm.c (Tk_WmCmd): Check the WM_NEVER_MAPPED
flag while processing the wm deiconify command.
The WM_UPDATE_PENDING flag should never be set when
WM_NEVER_MAPPED is set, but double check so that
the implementation is more explicit and matches
the comment just above.
Return without invoking TkWmRestackToplevel or
TkSetFocusWin on a toplevel that has never been
mapped. This fixes a bug where a toplevel is mapped
with the wrong size and is then resized by the
idle call to MapFrame. [Tk bug 233150]
Diffstat (limited to 'tests/wm.test')
-rw-r--r-- | tests/wm.test | 58 |
1 files changed, 57 insertions, 1 deletions
diff --git a/tests/wm.test b/tests/wm.test index d859fa6..bc1bd1a 100644 --- a/tests/wm.test +++ b/tests/wm.test @@ -7,7 +7,7 @@ # Copyright (c) 1998-1999 by Scriptics Corporation. # All rights reserved. # -# RCS: @(#) $Id: wm.test,v 1.12 2002/06/24 02:17:57 mdejong Exp $ +# RCS: @(#) $Id: wm.test,v 1.13 2002/06/24 20:34:40 mdejong Exp $ # This file tests window manager interactions that work across # platforms. Window manager tests that only work on a specific @@ -744,6 +744,62 @@ test wm-minsize-1.6 {usage} { } {200 150} +test wm-deiconify-1.1 {usage} { + list [catch {wm deiconify} err] $err +} {1 {wrong # args: should be "wm option window ?arg ...?"}} + +test wm-deiconify-1.2 {usage} { + list [catch {wm deiconify . _} err] $err +} {1 {wrong # arguments: must be "wm deiconify window"}} + +test wm-deiconify-1.3 {usage} { + list [catch {wm deiconify _} err] $err +} {1 {bad window path name "_"}} + +test wm-deiconify-2.1 {a window that has never been mapped + should not be mapped by a call to deiconify} { + deleteWindows + toplevel .t + wm deiconify .t + winfo ismapped .t +} 0 + +test wm-deiconify-2.2 {a window that has already been + mapped should be mapped by deiconify} { + deleteWindows + toplevel .t + update idletasks + wm withdraw .t + wm deiconify .t + winfo ismapped .t +} 1 + +test wm-deiconify-2.3 {geometry for an unmapped window + should not be calculated by a call to deiconify, + it should be done at idle time} { + deleteWindows + set results {} + toplevel .t -width 200 -height 200 + lappend results [wm geometry .t] + wm deiconify .t + lappend results [wm geometry .t] + update idletasks + lappend results [lindex [split \ + [wm geometry .t] +] 0] +} {1x1+0+0 1x1+0+0 200x200} + +test wm-deiconify-2.4 {invoking destroy after a deiconify + should not result in a crash because of a callback + set on the toplevel} { + deleteWindows + toplevel .t + wm withdraw .t + wm deiconify .t + destroy .t + update +} {} + + # FIXME: # Test delivery of virtual events to the WM. We could check to see |