From 585979a0d191a10f80d858258a30b46ff28993fc Mon Sep 17 00:00:00 2001 From: pax Date: Wed, 15 Apr 2026 17:49:54 -0500 Subject: [PATCH] window_state: annotate silent excepts Both hyprctl-path guards in window_state (hyprctl_main_window() JSON parse, save_main_window_state() full flow) now explain why the failure is absorbed instead of raised. No behavior change. --- booru_viewer/gui/window_state.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/booru_viewer/gui/window_state.py b/booru_viewer/gui/window_state.py index 4e0407e..f1a902c 100644 --- a/booru_viewer/gui/window_state.py +++ b/booru_viewer/gui/window_state.py @@ -160,6 +160,10 @@ class WindowStateController: continue return c except Exception: + # hyprctl unavailable (non-Hyprland session), timed out, + # or produced invalid JSON. Caller treats None as + # "no Hyprland-visible main window" and falls back to + # Qt's own geometry tracking. pass return None @@ -207,6 +211,9 @@ class WindowStateController: # When tiled, intentionally do NOT touch floating_geometry -- # preserve the last good floating dimensions. except Exception: + # Geometry persistence is best-effort; swallowing here + # beats crashing closeEvent over a hyprctl timeout or a + # setting-write race. Next save attempt will retry. pass def restore_main_window_state(self) -> None: