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 | |
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')
-rw-r--r-- | tests/winWm.test | 26 | ||||
-rw-r--r-- | tests/wm.test | 58 |
2 files changed, 82 insertions, 2 deletions
diff --git a/tests/winWm.test b/tests/winWm.test index 72f5919..bc4a220 100644 --- a/tests/winWm.test +++ b/tests/winWm.test @@ -9,7 +9,7 @@ # Copyright (c) 1998-1999 by Scriptics Corporation. # All rights reserved. # -# RCS: @(#) $Id: winWm.test,v 1.5 2002/06/22 10:13:26 hobbs Exp $ +# RCS: @(#) $Id: winWm.test,v 1.6 2002/06/24 20:34:40 mdejong Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { source [file join [pwd] [file dirname [info script]] defs.tcl] @@ -248,6 +248,30 @@ test winWm-6.3 {wm attributes} {pcOnly} { destroy .t +test winWm-6.1 {deiconify on an unmapped toplevel + will raise the window and set the focus} {pcOnly} { + destroy .t + toplevel .t + lower .t + focus -force . + wm deiconify .t + update + list [wm stackorder .t isabove .] [focus] +} {1 .t} + +test winWm-6.2 {deiconify on an already mapped toplevel + will raise the window and set the focus} {pcOnly} { + destroy .t + toplevel .t + lower .t + update + focus -force . + wm deiconify .t + update + list [wm stackorder .t isabove .] [focus] +} {1 .t} + + # cleanup ::tcltest::cleanupTests return 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 |