fix: remove grab_set() to allow main window interaction

UART Monitor window was modal (grab_set) preventing main window
from being used while the UART window is open. Remove grab_set
to make it modeless.
This commit is contained in:
Jeremy Shen
2026-06-10 15:04:39 +08:00
parent 778bee5d19
commit 8130578f70
3 changed files with 29 additions and 11 deletions
+1 -11
View File
@@ -800,9 +800,6 @@ class UartMonitorWindow(ctk.CTkToplevel):
self.minsize(480, 360)
self.protocol("WM_DELETE_WINDOW", self._on_close)
# Defer grab_set until window is viewable (avoids "window not viewable" error)
self.after(50, self._do_grab)
self._port = port
self._baudrate = baudrate
self._monitor: UartMonitor | None = None
@@ -814,16 +811,9 @@ class UartMonitorWindow(ctk.CTkToplevel):
self._build_log_area()
self._build_status_bar()
# Try to open serial port after window is drawn
# Try to open serial port after window is drawn
self.after(100, self._try_open)
def _do_grab(self) -> None:
"""Acquire grab once window is viewable."""
try:
self.grab_set()
except Exception:
pass # Window may have been destroyed already
# ── Title Bar ──────────────────────────────────────────────
def _build_title_bar(self) -> None: