From 474bd1807de5bbe8400c8bf7abba48f5d1ea42cf Mon Sep 17 00:00:00 2001 From: Eugenio Parodi Date: Fri, 26 May 2023 15:50:12 +0100 Subject: [PATCH] Fix layout parent propagation/removal --- TermTk/TTkLayouts/layout.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/TermTk/TTkLayouts/layout.py b/TermTk/TTkLayouts/layout.py index e4e3c073..9d17a135 100644 --- a/TermTk/TTkLayouts/layout.py +++ b/TermTk/TTkLayouts/layout.py @@ -190,7 +190,9 @@ class TTkLayout(TTkLayoutItem): return None def setParent(self, parent): - if isinstance(parent, TTkLayoutItem): + if parent is None: + self._parent = parent + elif isinstance(parent, TTkLayoutItem): self._parent = parent else: self._parent = parent.widgetItem() @@ -291,6 +293,9 @@ class TTkLayout(TTkLayoutItem): for item in items: if item in self._items: self._items.remove(item) + if item._layoutItemType == TTkK.WidgetItem: + item.widget().setParent(None) + item.setParent(None) self._zSortItems() def removeWidget(self, widget): @@ -311,7 +316,6 @@ class TTkLayout(TTkLayoutItem): if item._layoutItemType == TTkK.WidgetItem and \ item.widget() in widgets: self.removeItem(item) - return elif item._layoutItemType == TTkK.LayoutItem: item.removeWidgets(widgets)