diff --git a/gui/app.py b/gui/app.py index a762fe4..33e44fb 100644 --- a/gui/app.py +++ b/gui/app.py @@ -91,7 +91,7 @@ class App(ctk.CTk): # Restore saved window geometry or use default saved_geo = self.store._window_geometry - if saved_geo: + if saved_geo and self._is_valid_geometry(saved_geo): self.geometry(saved_geo) else: self.geometry("1100x700") @@ -667,10 +667,25 @@ class App(ctk.CTk): except Exception: pass + @staticmethod + def _is_valid_geometry(geo: str) -> bool: + """Reject geometry with offscreen coordinates (e.g. minimized -32000).""" + try: + # format: WxH+X+Y or WxH-X-Y + import re + m = re.match(r"(\d+)x(\d+)([+-]\d+)([+-]\d+)", geo) + if not m: + return False + x, y = int(m.group(3)), int(m.group(4)) + return -100 < x < 10000 and -100 < y < 10000 + except Exception: + return False + def _on_close(self): # Save window geometry (size + position) and sidebar width try: - self.store._window_geometry = self.geometry() + geo = self.geometry() + self.store._window_geometry = geo if self._is_valid_geometry(geo) else None # Save sidebar width from PanedWindow sash position try: sash_pos = self._paned.sash_coord(0) diff --git a/releases/ServerManager-v1.9.13-win-x64.exe b/releases/ServerManager-v1.9.13-win-x64.exe deleted file mode 100644 index 399a4df..0000000 Binary files a/releases/ServerManager-v1.9.13-win-x64.exe and /dev/null differ diff --git a/releases/ServerManager-v1.9.14-win-x64.exe b/releases/ServerManager-v1.9.19-win-x64.exe similarity index 98% rename from releases/ServerManager-v1.9.14-win-x64.exe rename to releases/ServerManager-v1.9.19-win-x64.exe index a47acda..907e39e 100644 Binary files a/releases/ServerManager-v1.9.14-win-x64.exe and b/releases/ServerManager-v1.9.19-win-x64.exe differ diff --git a/version.py b/version.py index 9c67627..2f8c211 100755 --- a/version.py +++ b/version.py @@ -1,6 +1,6 @@ """Version info for ServerManager.""" -__version__ = "1.9.18" +__version__ = "1.9.19" __app_name__ = "ServerManager" __author__ = "aibot777" __description__ = "Desktop GUI for managing remote servers"