From 23cbde8837dcedf7f2d24062b28c4ce8a4220963 Mon Sep 17 00:00:00 2001 From: Paul Date: Tue, 5 Dec 2023 18:09:59 +0100 Subject: [PATCH] make sure the display is updated when resuming the app --- main.py | 5 +++++ screens/menu.kv | 4 ++-- tools/kivy_tools/screen.py | 10 ++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index 8a5bd8e..413399d 100644 --- a/main.py +++ b/main.py @@ -99,6 +99,11 @@ def build(self): Window.clearcolor = (0, 0, 0, 1) self.icon = PATH_IMAGES + "logo.png" + def on_resume(self): + current_screen_name = self.root_window.children[0].current + self.root_window.children[0].get_screen(current_screen_name).refresh() + return super().on_resume() + def on_start(self): if MOBILE_MODE: Window.update_viewport() diff --git a/screens/menu.kv b/screens/menu.kv index 10a7482..b4e47de 100644 --- a/screens/menu.kv +++ b/screens/menu.kv @@ -26,7 +26,7 @@ Label: id: start_label text: root.start_label_text - size_hint: 1, 0.25 + size_hint: 0.7, 0.25 pos_hint: {"center_x": 0.5, "center_y": 0.45} font_size: 50*root.font_ratio font_name: root.font_name @@ -34,7 +34,7 @@ outline_width: 2 outline_color: (1,1,1,1) Button: - size_hint: 1, 0.25 + size_hint: 0.7, 0.25 pos_hint: {"center_x": 0.5, "center_y": 0.45} background_color: 0, 0, 0, 0 on_release: diff --git a/tools/kivy_tools/screen.py b/tools/kivy_tools/screen.py index 154a82f..cc49242 100644 --- a/tools/kivy_tools/screen.py +++ b/tools/kivy_tools/screen.py @@ -13,7 +13,9 @@ ### Kivy imports ### from kivy.core.window import Window +from kivy.clock import Clock from kivy.uix.screenmanager import Screen +from kivy.uix.label import Label from kivy.properties import ( StringProperty, NumericProperty, @@ -206,3 +208,11 @@ def enable_widget(self, widget_id: str): widget.opacity = 1 widget.disabled = False widget.pos_hint = self.temp_pos[widget_id] + + def refresh(self): + self.label_widget = Label(text=" ", pos_hint={"x": 1, "y": 1}) + self.add_widget(self.label_widget) + Clock.schedule_once(self.post_refresh) + + def post_refresh(self, *args): + self.remove_widget(self.label_widget)