From 2dcf9bc8563db8cad039366a5af55d533429d3de Mon Sep 17 00:00:00 2001 From: Ethanfel Date: Mon, 13 Apr 2026 15:39:49 +0200 Subject: [PATCH] fix: preview window stays on top and raises with main window - Add WindowStaysOnTopHint to keep preview above other windows - Raise preview on main window activation (alt-tab, taskbar click) Co-Authored-By: Claude Opus 4.6 --- main.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index 6fea374..68f3c65 100755 --- a/main.py +++ b/main.py @@ -1287,7 +1287,7 @@ class SnapPreviewWindow(QWidget): _SNAP_DIST = 20 # pixels within which snapping activates def __init__(self, main_win: QMainWindow): - super().__init__(None, Qt.WindowType.Tool) + super().__init__(None, Qt.WindowType.Tool | Qt.WindowType.WindowStaysOnTopHint) self._main_win = main_win self._dock_edge: str | None = None # "left", "right", "top", "bottom" or None self._dock_offset: int = 0 # offset along the docked edge @@ -2526,6 +2526,12 @@ class MainWindow(QMainWindow): self._refresh_markers() # remove stale pending marker self.statusBar().showMessage(f"Export error: {msg}") + def changeEvent(self, event): + super().changeEvent(event) + if event.type() == event.Type.ActivationChange and self.isActiveWindow(): + if self._preview_win.isVisible(): + self._preview_win.raise_() + def closeEvent(self, event): _log("Shutting down…") # Stop timers first to prevent callbacks into dead objects.