From 77500adb8d6231580f10ec551a13af183389cf6f Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Fri, 13 Oct 2023 12:24:53 +0900 Subject: [PATCH] =?UTF-8?q?[bugfix]=20Main=20Window:=20=E8=A8=AD=E5=AE=9A?= =?UTF-8?q?=E7=94=BB=E9=9D=A2=E3=82=92=E9=96=8B=E3=81=84=E3=81=9F=E6=99=82?= =?UTF-8?q?=E3=81=AB=E3=80=81=E3=83=A1=E3=82=A4=E3=83=B3=E7=94=BB=E9=9D=A2?= =?UTF-8?q?=E3=81=AB=E8=A2=AB=E3=81=9B=E3=82=8B=E3=83=A2=E3=83=BC=E3=83=80?= =?UTF-8?q?=E3=83=AB=E5=9E=8B=E3=82=A6=E3=82=A3=E3=83=B3=E3=83=89=E3=82=A6?= =?UTF-8?q?=E3=81=8C=E3=80=81=E3=83=A1=E3=82=A4=E3=83=B3=E7=94=BB=E9=9D=A2?= =?UTF-8?q?=E6=9C=80=E5=B0=8F=E5=8C=96=E6=99=82=E3=81=AF=E3=81=9D=E3=82=8C?= =?UTF-8?q?=E3=81=AB=E5=BE=93=E3=81=A3=E3=81=A6=E6=B6=88=E3=81=97=E3=80=81?= =?UTF-8?q?=E3=83=A1=E3=82=A4=E3=83=B3=E7=94=BB=E9=9D=A2=E3=82=92=E3=81=BE?= =?UTF-8?q?=E3=81=9F=E9=96=8B=E3=81=84=E3=81=9F=E6=99=82=E3=81=AB=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E3=80=82=20[Refactor]=20=E3=81=9D=E3=81=AE=E3=83=A2?= =?UTF-8?q?=E3=83=BC=E3=83=80=E3=83=AB=E5=9E=8B=E3=82=A6=E3=82=A3=E3=83=B3?= =?UTF-8?q?=E3=83=89=E3=82=A6=E3=81=AE=E8=A1=A8=E7=A4=BA=E9=96=A2=E6=95=B0?= =?UTF-8?q?=E3=82=92=E7=A7=BB=E5=8B=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vrct_gui/_CreateModalWindow.py | 10 +++++++++- vrct_gui/vrct_gui.py | 27 ++++++++++++++++++++++++--- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/vrct_gui/_CreateModalWindow.py b/vrct_gui/_CreateModalWindow.py index 8cd837c2..f7a656b1 100644 --- a/vrct_gui/_CreateModalWindow.py +++ b/vrct_gui/_CreateModalWindow.py @@ -1,5 +1,7 @@ from customtkinter import CTkToplevel, CTkFrame, CTkLabel, CTkFont +from .ui_utils import fadeInAnimation + class _CreateModalWindow(CTkToplevel): def __init__(self, attach_window, settings, view_variable): super().__init__() @@ -46,4 +48,10 @@ class _CreateModalWindow(CTkToplevel): anchor="w", text_color=self.settings.ctm.TEXT_COLOR, ) - self.modal_container_label_wrapper.place(relx=0.5, rely=0.5, anchor="center") \ No newline at end of file + self.modal_container_label_wrapper.place(relx=0.5, rely=0.5, anchor="center") + + + def show(self): + self.attributes("-alpha", 0) + self.deiconify() + fadeInAnimation(self, steps=5, interval=0.005, max_alpha=0.5) diff --git a/vrct_gui/vrct_gui.py b/vrct_gui/vrct_gui.py index 390d076b..3b0ce31f 100644 --- a/vrct_gui/vrct_gui.py +++ b/vrct_gui/vrct_gui.py @@ -23,6 +23,23 @@ class VRCT_GUI(CTk): self.is_config_window_already_opened_once=False self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID=None self.BIND_FOCUS_IN_MODAL_WINDOW_LIFT_CONFIG_WINDOW_FUNC_ID=None + self.BIND_UNMAP_DETECT_MAIN_WINDOW_STATE_FUNC_ID = None + self.BIND_MAP_DETECT_MAIN_WINDOW_STATE_FUNC_ID = None + + self.window_state = None + + def detectMainWindowState(self, _e=None): + self.new_window_state = self.wm_state() + if self.window_state == self.new_window_state: + return + else: + self.window_state = self.new_window_state + + if self.window_state == "iconic": + self.modal_window.withdraw() + elif self.window_state == "normal": + self.modal_window.show() + def _showGUI(self): @@ -111,11 +128,13 @@ class VRCT_GUI(CTk): callFunctionIfCallable(self._view_variable.CALLBACK_OPEN_CONFIG_WINDOW) self._adjustToMainWindowGeometry() - self.modal_window.attributes("-alpha", 0) - self.modal_window.deiconify() - fadeInAnimation(self.modal_window, steps=5, interval=0.005, max_alpha=0.5) + self.modal_window.show() self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID = self.bind("", self._adjustToMainWindowGeometry, "+") + + self.BIND_UNMAP_DETECT_MAIN_WINDOW_STATE_FUNC_ID = self.bind("", self.detectMainWindowState, "+") + self.BIND_MAP_DETECT_MAIN_WINDOW_STATE_FUNC_ID = self.bind("", self.detectMainWindowState, "+") + self.BIND_FOCUS_IN_MODAL_WINDOW_LIFT_CONFIG_WINDOW_FUNC_ID = self.modal_window.bind("", lambda _e: self.config_window.lift(), "+") self.config_window.attributes("-alpha", 0) @@ -134,6 +153,8 @@ class VRCT_GUI(CTk): self.modal_window.withdraw() self.unbind("", self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID) + self.unbind("", self.BIND_UNMAP_DETECT_MAIN_WINDOW_STATE_FUNC_ID) + self.unbind("", self.BIND_MAP_DETECT_MAIN_WINDOW_STATE_FUNC_ID) self.modal_window.unbind("", self.BIND_FOCUS_IN_MODAL_WINDOW_LIFT_CONFIG_WINDOW_FUNC_ID) self.adjusted_event=None