From 55db1c2e750c4e2031b56754af847681c28bb707 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Fri, 20 Oct 2023 06:00:18 +0900 Subject: [PATCH] =?UTF-8?q?[bugfix]=20Main=20Window,=20Cover=20Window:=20?= =?UTF-8?q?=E3=83=A1=E3=82=A4=E3=83=B3=E7=94=BB=E9=9D=A2=E3=81=AB=E8=BF=BD?= =?UTF-8?q?=E5=BE=93=E3=81=97=E3=81=AA=E3=81=84=E3=83=90=E3=82=B0=E3=81=AA?= =?UTF-8?q?=E3=81=A9=E4=BF=AE=E6=AD=A3=E3=80=82=E8=BF=BD=E5=BE=93=E3=81=99?= =?UTF-8?q?=E3=82=8B=E9=96=A2=E6=95=B0=E3=82=84=E3=82=A4=E3=83=99=E3=83=B3?= =?UTF-8?q?=E3=83=88=E7=99=BB=E9=8C=B2=E3=82=82cover=20window=E3=82=AF?= =?UTF-8?q?=E3=83=A9=E3=82=B9=E5=86=85=E3=81=AB=E6=8A=BC=E3=81=97=E8=BE=BC?= =?UTF-8?q?=E3=81=BF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- view.py | 4 ++-- vrct_gui/_CreateWindowCover.py | 29 ++++++++++++++++++++++++++++- vrct_gui/vrct_gui.py | 23 +++-------------------- 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/view.py b/view.py index 80178321..d2121530 100644 --- a/view.py +++ b/view.py @@ -627,14 +627,14 @@ class View(): self.view_variable.VAR_LABEL_MAIN_WINDOW_COVER_MESSAGE.set("") vrct_gui.main_window_cover.show() - # self.view_variable.CALLBACK_HIDE_CONFIRMATION_MODAL=self._hideConfirmationModal + self.view_variable.CALLBACK_HIDE_CONFIRMATION_MODAL=self._hideInformationModal self.view_variable.CALLBACK_ACCEPTED_CONFIRMATION_MODAL=self._hideInformationModal # self.view_variable.CALLBACK_DENIED_CONFIRMATION_MODAL=self._hideConfirmationModal self.view_variable.VAR_MESSAGE_CONFIRMATION_MODAL.set(i18n.t("main_window.confirmation_message.translation_engine_limit_error")) # self.view_variable.VAR_LABEL_CONFIRMATION_MODAL_DENY_BUTTON.set(i18n.t("main_window.confirmation_message.deny_update_software")) self.view_variable.VAR_LABEL_CONFIRMATION_MODAL_ACCEPT_BUTTON.set(i18n.t("main_window.confirmation_message.accept_translation_engine_limit_error")) - vrct_gui.information_modal.show(close_when_focusout=False) + vrct_gui.information_modal.show(hide_title_bar=False, close_when_focusout=False) diff --git a/vrct_gui/_CreateWindowCover.py b/vrct_gui/_CreateWindowCover.py index 9ab8c4ee..878ca45b 100644 --- a/vrct_gui/_CreateWindowCover.py +++ b/vrct_gui/_CreateWindowCover.py @@ -1,12 +1,15 @@ from customtkinter import CTkToplevel, CTkFrame, CTkLabel, CTkFont from .ui_utils import fadeInAnimation +from utils import makeEven class _CreateWindowCover(CTkToplevel): def __init__(self, attach_window, settings, view_variable): super().__init__() self.withdraw() + self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID=None + self.BIND_FOCUS_IN_FUNC_ID=None self.title("") self.overrideredirect(True) @@ -40,7 +43,14 @@ class _CreateWindowCover(CTkToplevel): self.cover_container_label_wrapper.place(relx=0.5, rely=0.5, anchor="center") - def show(self): + def show(self, bind_focusin=None): + self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID = self.attach_window.bind("", self._adjustToMainWindowGeometry, "+") + if bind_focusin is not None: + self.BIND_FOCUS_IN_FUNC_ID = self.bind("", lambda _e: bind_focusin(), "+") + else: + self.BIND_FOCUS_IN_FUNC_ID = None + + self.attributes("-alpha", 0) self.deiconify() self.attach_window.update_idletasks() @@ -52,5 +62,22 @@ class _CreateWindowCover(CTkToplevel): fadeInAnimation(self, steps=5, interval=0.005, max_alpha=0.5) + def hide(self): + self.attach_window.unbind("", self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID) + if self.BIND_FOCUS_IN_FUNC_ID is not None: + self.unbind("", self.BIND_FOCUS_IN_FUNC_ID) + self.withdraw() + + + + def _adjustToMainWindowGeometry(self, e=None): + self.attach_window.update_idletasks() + x_pos = self.attach_window.winfo_rootx() + y_pos = self.attach_window.winfo_rooty() + width_new = makeEven(self.attach_window.winfo_width()) + height_new = makeEven(self.attach_window.winfo_height()) + self.geometry("{}x{}+{}+{}".format(width_new, height_new, x_pos, y_pos)) + + self.lift() \ No newline at end of file diff --git a/vrct_gui/vrct_gui.py b/vrct_gui/vrct_gui.py index a8f31f7d..73e3d805 100644 --- a/vrct_gui/vrct_gui.py +++ b/vrct_gui/vrct_gui.py @@ -14,15 +14,13 @@ from .main_window import createMainWindowWidgets from .config_window import ConfigWindow from .ui_utils import setDefaultActiveTab, setGeometryToCenterOfScreen, fadeInAnimation -from utils import callFunctionIfCallable, makeEven +from utils import callFunctionIfCallable class VRCT_GUI(CTk): def __init__(self): super().__init__() self.withdraw() 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 @@ -104,7 +102,7 @@ class VRCT_GUI(CTk): ) self.main_window_cover = _CreateWindowCover( - attach_window=self.toplevel_wrapper, + attach_window=self, settings=self.settings.main_window_cover, view_variable=self._view_variable ) @@ -150,14 +148,11 @@ class VRCT_GUI(CTk): def _openConfigWindow(self): - self.main_window_cover.show() - - self.BIND_CONFIGURE_ADJUSTED_GEOMETRY_FUNC_ID = self.bind("", self._adjustToMainWindowGeometry, "+") + self.main_window_cover.show(bind_focusin=self.config_window.lift) 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.main_window_cover.bind("", lambda _e: self.config_window.lift(), "+") self.config_window.attributes("-alpha", 0) self.config_window.deiconify() @@ -172,10 +167,8 @@ class VRCT_GUI(CTk): self.config_window.withdraw() self.main_window_cover.hide() - 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.main_window_cover.unbind("", self.BIND_FOCUS_IN_MODAL_WINDOW_LIFT_CONFIG_WINDOW_FUNC_ID) self.adjusted_event=None @@ -276,16 +269,6 @@ class VRCT_GUI(CTk): self.minimize_sidebar_button_container__for_closing.grid() - def _adjustToMainWindowGeometry(self, e=None): - self.update_idletasks() - x_pos = self.winfo_rootx() - y_pos = self.winfo_rooty() - width_new = makeEven(self.winfo_width()) - height_new = makeEven(self.winfo_height()) - self.main_window_cover.geometry("{}x{}+{}+{}".format(width_new, height_new, x_pos, y_pos)) - - self.main_window_cover.lift() - def _showErrorMessage(self, target_widget): self.error_message_window.show(target_widget=target_widget)