Index: generic/tkGrid.c ================================================================== --- generic/tkGrid.c +++ generic/tkGrid.c @@ -1731,16 +1731,18 @@ masterPtr->flags &= ~REQUESTED_RELAYOUT; /* * 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 + * <> 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; } if (masterPtr->masterDataPtr == NULL) { return; Index: generic/tkPack.c ================================================================== --- generic/tkPack.c +++ generic/tkPack.c @@ -598,14 +598,18 @@ masterPtr->flags &= ~REQUESTED_REPACK; /* * 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 + * <> 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; } /* * Abort any nested call to ArrangePacking for this window, since we'll do