summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2016-03-11 08:23:00 (GMT)
committerfvogel <fvogelnew1@free.fr>2016-03-11 08:23:00 (GMT)
commitb47f7f289518bdeb092ddcf0e70ffc722c37935d (patch)
treeb0d01080ade580b0137e70dc27fb883c8b30a9c5
parent532ab7d7c67ae98335942d7bf2b169be72949772 (diff)
parentecf0f568de78e737daeafcf39494950100e28d6b (diff)
downloadtk-b47f7f289518bdeb092ddcf0e70ffc722c37935d.zip
tk-b47f7f289518bdeb092ddcf0e70ffc722c37935d.tar.gz
tk-b47f7f289518bdeb092ddcf0e70ffc722c37935d.tar.bz2
Fixed bug [d95e5d8f16] - Hidden panes in panedwindow incorrectly trigger <Map> events
-rw-r--r--generic/tkPanedWindow.c8
-rw-r--r--tests/panedwindow.test32
2 files changed, 38 insertions, 2 deletions
diff --git a/generic/tkPanedWindow.c b/generic/tkPanedWindow.c
index 2451647..f350d0a 100644
--- a/generic/tkPanedWindow.c
+++ b/generic/tkPanedWindow.c
@@ -1370,11 +1370,15 @@ PanedWindowEventProc(
DestroyPanedWindow(pwPtr);
} else if (eventPtr->type == UnmapNotify) {
for (i = 0; i < pwPtr->numSlaves; i++) {
- Tk_UnmapWindow(pwPtr->slaves[i]->tkwin);
+ if (!pwPtr->slaves[i]->hide) {
+ Tk_UnmapWindow(pwPtr->slaves[i]->tkwin);
+ }
}
} else if (eventPtr->type == MapNotify) {
for (i = 0; i < pwPtr->numSlaves; i++) {
- Tk_MapWindow(pwPtr->slaves[i]->tkwin);
+ if (!pwPtr->slaves[i]->hide) {
+ Tk_MapWindow(pwPtr->slaves[i]->tkwin);
+ }
}
}
}
diff --git a/tests/panedwindow.test b/tests/panedwindow.test
index 666ed9c..ee184ce 100644
--- a/tests/panedwindow.test
+++ b/tests/panedwindow.test
@@ -4955,6 +4955,38 @@ test panedwindow-23.30 {ConfigurePanes, -hide works} -setup {
} -cleanup {
deleteWindows
} -result {1 1 1 0 39 40 40 1 130 1 0 1 1 40 40 40 42 130}
+test panedwindow-23.30a {ConfigurePanes, hidden panes are unmapped} -setup {
+ deleteWindows
+} -body {
+ panedwindow .p1 -sashrelief raised
+ panedwindow .p2 -sashrelief raised
+ label .l1 -text Label1
+ label .l2 -text Label2
+ label .l3 -text Label3
+ .p2 add .l2 -sticky nsew
+ .p2 add .l3 -sticky nsew
+ .p1 add .p2 -sticky nsew
+ .p1 add .l1 -sticky nsew
+ pack .p1 -side top -expand 1 -fill both
+ update
+ set result [list]
+ lappend result [list [winfo ismapped .p1] [winfo ismapped .p2] \
+ [winfo ismapped .l1] [winfo ismapped .l2] [winfo ismapped .l3]]
+ .p2 paneconfigure .l1 -hide 1
+ update
+ lappend result [list [winfo ismapped .p1] [winfo ismapped .p2] \
+ [winfo ismapped .l1] [winfo ismapped .l2] [winfo ismapped .l3]]
+ .p1 paneconfigure .p2 -hide 1
+ update
+ lappend result [list [winfo ismapped .p1] [winfo ismapped .p2] \
+ [winfo ismapped .l1] [winfo ismapped .l2] [winfo ismapped .l3]]
+ .p1 paneconfigure .p2 -hide 0
+ update
+ lappend result [list [winfo ismapped .p1] [winfo ismapped .p2] \
+ [winfo ismapped .l1] [winfo ismapped .l2] [winfo ismapped .l3]]
+} -cleanup {
+ deleteWindows
+} -result {{1 1 1 1 1} {1 1 0 1 1} {1 0 0 0 0} {1 1 0 1 1}}
test panedwindow-23.31 {ConfigurePanes, -hide works, last pane stretches} -setup {
deleteWindows
} -body {