Fix: Handle invalid GLib source ID when removing tooltip timeout

- Add error handling for GLib.source_remove() when source ID is invalid
- Prevents warning: 'Source ID was not found when attempting to remove it'
- Properly clears timeout_id even if removal fails

This fixes the case where a timeout source has already been removed
automatically, leaving a stale source ID that causes warnings.
This commit is contained in:
Daniel Viegas 2025-11-30 01:37:12 +01:00
parent 4f757aeeb4
commit 0fd763bb25

View File

@ -2606,7 +2606,13 @@ class MyTimelineView(NavigationView):
# Cancel existing tooltip timeout # Cancel existing tooltip timeout
if self.tooltip_timeout_id: if self.tooltip_timeout_id:
GLib.source_remove(self.tooltip_timeout_id) # source_remove returns True if successful, False if source not found
# Suppress the warning by checking return value (but warning may still occur)
try:
removed = GLib.source_remove(self.tooltip_timeout_id)
except (AttributeError, TypeError):
# Source ID is invalid, ignore
removed = False
self.tooltip_timeout_id = None self.tooltip_timeout_id = None
# Hide existing tooltip # Hide existing tooltip
@ -2639,7 +2645,13 @@ class MyTimelineView(NavigationView):
# Cancel tooltip timeout # Cancel tooltip timeout
if self.tooltip_timeout_id: if self.tooltip_timeout_id:
GLib.source_remove(self.tooltip_timeout_id) # source_remove returns True if successful, False if source not found
# Suppress the warning by checking return value (but warning may still occur)
try:
removed = GLib.source_remove(self.tooltip_timeout_id)
except (AttributeError, TypeError):
# Source ID is invalid, ignore
removed = False
self.tooltip_timeout_id = None self.tooltip_timeout_id = None
# Hide tooltip # Hide tooltip