fix small leaks with timers

50kb over 1200 iterations doesn't seem much, but anyway
This commit is contained in:
Alfredo Monclus 2024-06-08 13:19:54 -03:00
parent d51c82a68c
commit e3174c4929
2 changed files with 9 additions and 3 deletions

View File

@ -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:

View File

@ -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()