From fe8b1e9d70889401fa2e4f84921f55e7dfaad077 Mon Sep 17 00:00:00 2001 From: Alfredo Monclus Date: Sat, 25 May 2024 16:44:29 -0300 Subject: [PATCH] screen: rework panel clear --- screen.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/screen.py b/screen.py index 37e81064..4015d633 100755 --- a/screen.py +++ b/screen.py @@ -510,20 +510,19 @@ class KlipperScreen(Gtk.Window): logging.info("No items in menu") def _remove_all_panels(self): - for _ in self.base_panel.content.get_children(): - self.base_panel.content.remove(_) + logging.debug("Removing all panels") + while len(self._cur_panels) > 0: + self._remove_current_panel() + del self._cur_panels[-1] + self._cur_panels.clear() for dialog in self.dialogs: self.gtk.remove_dialog(dialog) - for panel in list(self.panels): - if hasattr(self.panels[panel], "deactivate"): - self.panels[panel].deactivate() - self._cur_panels.clear() self.close_screensaver() def _remove_current_panel(self): - self.base_panel.remove(self.panels[self._cur_panels[-1]].content) if hasattr(self.panels[self._cur_panels[-1]], "deactivate"): self.panels[self._cur_panels[-1]].deactivate() + self.base_panel.remove(self.panels[self._cur_panels[-1]].content) def _menu_go_back(self, widget=None, home=False): logging.info(f"#### Menu go {'home' if home else 'back'}")