From e3174c49290afe7aceb269a7c9cd0849b6f539eb Mon Sep 17 00:00:00 2001 From: Alfredo Monclus Date: Sat, 8 Jun 2024 13:19:54 -0300 Subject: [PATCH] fix small leaks with timers 50kb over 1200 iterations doesn't seem much, but anyway --- panels/job_status.py | 4 +++- screen.py | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/panels/job_status.py b/panels/job_status.py index a4149ede..8bd2058f 100644 --- a/panels/job_status.py +++ b/panels/job_status.py @@ -778,10 +778,12 @@ class Panel(ScreenPanel): ellipsized = self.labels['file'].get_layout().is_ellipsized() if ellipsized: self.animation_timeout = GLib.timeout_add_seconds(1, self.animate_label) + else: + self.animation_timeout = None self.update_file_metadata() def animate_label(self): - if not self.filename_label: + if not self.filename_label or not self.animation_timeout: return False ellipsized = self.labels['file'].get_layout().is_ellipsized() if ellipsized: diff --git a/screen.py b/screen.py index f264a4df..7e13278f 100755 --- a/screen.py +++ b/screen.py @@ -399,11 +399,12 @@ class KlipperScreen(Gtk.Window): def close_popup_message(self, widget=None): if self.popup_message is None: - return + return False self.popup_message.popdown() if self.popup_timeout is not None: GLib.source_remove(self.popup_timeout) - self.popup_message = self.popup_timeout = None + self.popup_timeout = None + self.popup_message = None return False def show_error_modal(self, title_msg, description="", help_msg=None): @@ -591,6 +592,9 @@ class KlipperScreen(Gtk.Window): logging.debug("Showing Screensaver") if self.screensaver is not None: self.close_screensaver() + if self.screensaver_timeout is not None: + GLib.source_remove(self.screensaver_timeout) + self.screensaver_timeout = None if self.blanking_time == 0: return False self.remove_keyboard()