summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfvogelnew1@free.fr <fvogel>2016-09-21 06:32:55 (GMT)
committerfvogelnew1@free.fr <fvogel>2016-09-21 06:32:55 (GMT)
commit86da0b2502b66170b5b12ffefbbc716ca52808b7 (patch)
treed27524df7dc9f489e4f90bb5e65fad861f505005
parent941850a92fc6905cb22dea361fb1ed1cbebcf70b (diff)
downloadtk-d6b95ce492.zip
tk-d6b95ce492.tar.gz
tk-d6b95ce492.tar.bz2
(Modernized) patch from egavilan to fix [2863003fff] and [d6b95ce492] - tk frame does not shrink to 0 height if last children unpacked. A virtual event is sent when the pack or grid geometry manager leaves a parent without any slavesd6b95ce492
-rw-r--r--generic/tkGrid.c8
-rw-r--r--generic/tkPack.c6
2 files changed, 10 insertions, 4 deletions
diff --git a/generic/tkGrid.c b/generic/tkGrid.c
index 2a88b76..a4b4125 100644
--- a/generic/tkGrid.c
+++ b/generic/tkGrid.c
@@ -1733,12 +1733,14 @@ ArrangeGrid(
/*
* If the master has no slaves anymore, then don't do anything at all:
- * just leave the master's size as-is. Otherwise there is no way to
- * "relinquish" control over the master so another geometry manager can
- * take over.
+ * just leave the master's size as-is, but signal the master with the
+ * <<GeometryManager>> virtual event.
+ * Otherwise there is no way to "relinquish" control over the master
+ * so another geometry manager can take over.
*/
if (masterPtr->slavePtr == NULL) {
+ TkSendVirtualEvent(masterPtr->tkwin, "GeometryManager", NULL);
return;
}
diff --git a/generic/tkPack.c b/generic/tkPack.c
index 88a4b2d..d46d64c 100644
--- a/generic/tkPack.c
+++ b/generic/tkPack.c
@@ -600,10 +600,14 @@ ArrangePacking(
/*
* If the master has no slaves anymore, then don't do anything at all:
- * just leave the master's size as-is.
+ * just leave the master's size as-is, but signal the master with the
+ * <<GeometryManager>> virtual event.
+ * Otherwise there is no way to "relinquish" control over the master
+ * so another geometry manager can take over.
*/
if (masterPtr->slavePtr == NULL) {
+ TkSendVirtualEvent(masterPtr->tkwin, "GeometryManager", NULL);
return;
}