fix: defer grab_set() to avoid 'window not viewable' error
CTkToplevel grab_set() fails when called before the window is fully realized on screen. Defer to after(50ms) so the window has time to become viewable.
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
bootloader_bin_path: /home/ly0kos/work/Verify/FW/tftp_app/bootloader/bootloader_z100_800M.bin
|
bootloader_bin_path: /home/ly0kos/work/Verify/FW/tftp_app/bootloader/bootloader_z100_800M.bin
|
||||||
bootloader_bit_path: /home/ly0kos/work/Verify/FW/tftp_app/bootloader/pl_arm_wrapper_hw_platform_0/pl_arm_wrapper.bit
|
bootloader_bit_path: /home/ly0kos/work/Verify/FW/tftp_app/bootloader/pl_arm_wrapper_hw_platform_0/pl_arm_wrapper.bit
|
||||||
bootloader_elf_path: /home/ly0kos/work/Verify/FW/tftp_app/bootloader/app.elf
|
bootloader_elf_path: /home/ly0kos/work/Verify/FW/tftp_app/bootloader/app.elf
|
||||||
erase_all: true
|
erase_all: false
|
||||||
firmware_bin_path: /home/ly0kos/work/Verify/FW/V1.3.1.3.3_06_01_pmu_cpld_check/V1.3.1.3.3_06_01_pmu_cpld_check.bin
|
firmware_bin_path: /home/ly0kos/work/Verify/FW/V1.3.1.3.3_06_01_pmu_cpld_check/V1.3.1.3.3_06_01_pmu_cpld_check.bin
|
||||||
flash_model: s25fl256s1
|
flash_model: s25fl256s1
|
||||||
flash_type: qspi-x4-single
|
flash_type: qspi-x4-single
|
||||||
|
|||||||
+10
-1
@@ -797,9 +797,11 @@ class UartMonitorWindow(ctk.CTkToplevel):
|
|||||||
self.title("UART Monitor")
|
self.title("UART Monitor")
|
||||||
self.geometry("680x540")
|
self.geometry("680x540")
|
||||||
self.minsize(480, 360)
|
self.minsize(480, 360)
|
||||||
self.grab_set()
|
|
||||||
self.protocol("WM_DELETE_WINDOW", self._on_close)
|
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._port = port
|
||||||
self._baudrate = baudrate
|
self._baudrate = baudrate
|
||||||
self._monitor: UartMonitor | None = None
|
self._monitor: UartMonitor | None = None
|
||||||
@@ -814,6 +816,13 @@ class UartMonitorWindow(ctk.CTkToplevel):
|
|||||||
# Try to open serial port after window is drawn
|
# Try to open serial port after window is drawn
|
||||||
self.after(100, self._try_open)
|
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 ──────────────────────────────────────────────
|
# ── Title Bar ──────────────────────────────────────────────
|
||||||
|
|
||||||
def _build_title_bar(self) -> None:
|
def _build_title_bar(self) -> None:
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user