diff options
author | patthoyts@users.sourceforge.net <patthoyts> | 2011-03-19 00:39:28 (GMT) |
---|---|---|
committer | patthoyts@users.sourceforge.net <patthoyts> | 2011-03-19 00:39:28 (GMT) |
commit | 296c821c24b9af2d2a4828341559cfb1cfb9f553 (patch) | |
tree | d4842afa8fb7baa0b991eca79b8907667f4adc1e /tests/winWm.test | |
parent | 95b56dd60f3a15ef09f97ffadcb69f782aa88742 (diff) | |
download | tk-296c821c24b9af2d2a4828341559cfb1cfb9f553.zip tk-296c821c24b9af2d2a4828341559cfb1cfb9f553.tar.gz tk-296c821c24b9af2d2a4828341559cfb1cfb9f553.tar.bz2 |
[Bug 3205464] - handle [wm forget] when the parent is unmapped on windows
The fix for [Bug 2009788] prevented a crash but causes windows to be lost
if their parent is unmapped when [wm forget] is called. Added a test for
this case and ensure that the parent window exists when we remap the
child to its parent.
Reported-by: Koen Danckaert <danckaert@users.sourceforge.net>
Reported-by: Eric Boudaillier <beric@users.sourceforge.net>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Diffstat (limited to 'tests/winWm.test')
-rw-r--r-- | tests/winWm.test | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/winWm.test b/tests/winWm.test index 3f7cd0d..a026c8e 100644 --- a/tests/winWm.test +++ b/tests/winWm.test @@ -460,6 +460,36 @@ test winWm-9.1 "delayed activation of grabbed destroyed window" -constraints win destroy .tx .t .sd } -result {ok} +test winWm-9.2 "check wm forget for unmapped parent (#3205464,#2967911)" -setup { + destroy .t + toplevel .t + set winwm92 {} + frame .t.f -background blue -height 200 -width 200 + frame .t.f.x -background red -height 100 -width 100 +} -body { + pack .t.f.x + pack .t.f + set aid [after 1000 {set ::winwm92 timeout}] + after 100 { + wm manage .t.f + wm iconify .t + after 100 { + wm forget .t.f + wm deiconify .t + after 100 { + pack .t.f + after 100 {set ::winwm92 [expr {[winfo rooty .t.f.x] == 0 ? "failed" : "ok"}]} + } + } + } + vwait ::winwm92 + after cancel $aid + set winwm92 +} -cleanup { + destroy .t.f.x .t.f .t + unset -nocomplain winwm92 aid +} -result ok + destroy .t # cleanup |