From ef0b9f0b68df3bd24c6a7d94299424009055e3d8 Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Mon, 22 Jun 2026 17:46:34 +0545 Subject: [PATCH] feat(deps): lock fabric to specific commit and add required dependencies Align with latest stable API and ensure reproducible builds --- src/window/panel/components/globalmenu.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/window/panel/components/globalmenu.py b/src/window/panel/components/globalmenu.py index 5acab46..31c16f7 100644 --- a/src/window/panel/components/globalmenu.py +++ b/src/window/panel/components/globalmenu.py @@ -345,6 +345,22 @@ class GlobalMenuDropdowns: """ logger.info(f"[GlobalMenu] _rebuild_dynamic_menus: {len(menu_items)} items") + # Destroy old buttons to prevent massive GTK memory leaks + if hasattr(self, "all_menu_buttons"): + for btn in self.all_menu_buttons: + if btn not in ( + self.global_menu_button_title, + getattr(self, "global_menu_button_view", None), + getattr(self, "global_menu_button_window", None), + getattr(self, "global_menu_button_help", None), + ): + try: + if btn.get_parent(): + btn.get_parent().remove(btn) + btn.destroy() + except Exception: + pass + # Clean up any previous dynamic dropdowns for dd in self._dynamic_dropdowns: try: