diff options
author | fvogel <fvogelnew1@free.fr> | 2016-03-11 08:24:23 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2016-03-11 08:24:23 (GMT) |
commit | d30f4bda39ecf441026e68b7f58eb642c659230f (patch) | |
tree | e331b4f3db713c877151a7bd315b41a33445a886 | |
parent | cabdab6542ae2c49f932009ed1643db724857401 (diff) | |
download | tk-d30f4bda39ecf441026e68b7f58eb642c659230f.zip tk-d30f4bda39ecf441026e68b7f58eb642c659230f.tar.gz tk-d30f4bda39ecf441026e68b7f58eb642c659230f.tar.bz2 |
Fixed bug [d95e5d8f16] - Hidden panes in panedwindow incorrectly trigger <Map> events (cherrypicked [42c8d8441c])
-rw-r--r-- | generic/tkPanedWindow.c | 8 | ||||
-rw-r--r-- | tests/panedwindow.test | 32 |
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 { |