From 3ee405475fbc05d40161a5f9df73c7c58311789e Mon Sep 17 00:00:00 2001 From: LemonNexus Date: Sun, 15 Feb 2026 16:10:12 +0000 Subject: [PATCH] fix: Fix widget not appearing - store reference and set proper position ISSUE: Clock and System Monitor widgets were created but not visible. The widgets were being garbage collected because they weren't stored. FIX: 1. Store widget in self._active_widgets list to prevent GC 2. Set parent=self to keep widget alive with overlay 3. Position widget at center of screen (visible location) 4. Call raise_() and activateWindow() to bring to front 5. Added debug output showing widget position WIDGET CREATION NOW: - Creates widget with parent - Positions at center of screen - Shows, raises, activates - Stores reference in list - Prints position for debugging --- core/overlay_window.py | 48 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/core/overlay_window.py b/core/overlay_window.py index c1fce3b..8d11291 100644 --- a/core/overlay_window.py +++ b/core/overlay_window.py @@ -1736,18 +1736,58 @@ class OverlayWindow(QMainWindow): """Add a clock widget to the overlay.""" try: from core.widget_system import ClockWidget - widget = ClockWidget() + + # Create widget with self as parent + widget = ClockWidget(parent=self) + + # Position near center of screen + screen = QApplication.primaryScreen().geometry() + x = (screen.width() - 200) // 2 + y = (screen.height() - 100) // 2 + widget.move(x, y) + + # Show and raise widget.show() - print("[Overlay] Clock widget added") + widget.raise_() + widget.activateWindow() + + # Store reference to prevent garbage collection + if not hasattr(self, '_active_widgets'): + self._active_widgets = [] + self._active_widgets.append(widget) + + print(f"[Overlay] Clock widget added at ({x}, {y})") except Exception as e: print(f"[Overlay] Error adding clock widget: {e}") + import traceback + traceback.print_exc() def _add_system_monitor_widget(self): """Add a system monitor widget to the overlay.""" try: from core.widget_system import SystemMonitorWidget - widget = SystemMonitorWidget() + + # Create widget with self as parent + widget = SystemMonitorWidget(parent=self) + + # Position below the clock + screen = QApplication.primaryScreen().geometry() + x = (screen.width() - 200) // 2 + y = (screen.height() - 100) // 2 + 120 + widget.move(x, y) + + # Show and raise widget.show() - print("[Overlay] System monitor widget added") + widget.raise_() + widget.activateWindow() + + # Store reference to prevent garbage collection + if not hasattr(self, '_active_widgets'): + self._active_widgets = [] + self._active_widgets.append(widget) + + print(f"[Overlay] System monitor widget added at ({x}, {y})") except Exception as e: print(f"[Overlay] Error adding system monitor widget: {e}") + import traceback + traceback.print_exc()