From 2f3161f974f030056d761df38693014aa03a79cf Mon Sep 17 00:00:00 2001 From: pax Date: Mon, 6 Apr 2026 19:51:35 -0500 Subject: [PATCH] Save popout position from hyprctl on close (Wayland can't report position to Qt) --- booru_viewer/gui/preview.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/booru_viewer/gui/preview.py b/booru_viewer/gui/preview.py index b1201f9..281b54d 100644 --- a/booru_viewer/gui/preview.py +++ b/booru_viewer/gui/preview.py @@ -438,7 +438,15 @@ class FullscreenPreview(QMainWindow): # Save window state for next open FullscreenPreview._saved_fullscreen = self.isFullScreen() if not self.isFullScreen(): - FullscreenPreview._saved_geometry = self.geometry() + # On Hyprland, Qt doesn't know the real position — ask the WM + win = self._hyprctl_get_window() + if win and win.get("at") and win.get("size"): + from PySide6.QtCore import QRect + x, y = win["at"] + w, h = win["size"] + FullscreenPreview._saved_geometry = QRect(x, y, w, h) + else: + FullscreenPreview._saved_geometry = self.frameGeometry() QApplication.instance().removeEventFilter(self) self.closed.emit() self._video.stop()