From c79ba16ff738c9084497d19b28d82fc501d89272 Mon Sep 17 00:00:00 2001 From: Axel Pirek Date: Sun, 17 Nov 2024 16:04:13 +0100 Subject: [PATCH] fix: screen not staying off (#1506) When the screensaver is active and the screen is turned off due to DPMS the unconditional call to self.screensaver.show wakes the screen up again. The check whether the screensaver is already active got lost in the refactor. Fixes #1504 --- ks_includes/widgets/screensaver.py | 3 +++ screen.py | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ks_includes/widgets/screensaver.py b/ks_includes/widgets/screensaver.py index 8a36a817..f73fa05b 100644 --- a/ks_includes/widgets/screensaver.py +++ b/ks_includes/widgets/screensaver.py @@ -13,6 +13,9 @@ class ScreenSaver: self.screensaver_timeout = None self.blackbox = None + def is_showing(self): + return self.blackbox is not None + def reset_timeout(self, *args): if self.screensaver_timeout is not None: GLib.source_remove(self.screensaver_timeout) diff --git a/screen.py b/screen.py index 98c240d0..de5870eb 100755 --- a/screen.py +++ b/screen.py @@ -619,7 +619,8 @@ class KlipperScreen(Gtk.Window): self.set_dpms(False) return False elif state != functions.DPMS_State.On: - self.screensaver.show() + if not self.screensaver.is_showing(): + self.screensaver.show() return True def wake_screen(self):