Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 5467c98

Browse files
committed
Check if the Gtk3 source is destroyed before removing
This adds a reference to the Gtk3 source created by GLib.idle_add so it can be checked to see if it was destroyed later to avoid removing an invalid source id and causing warning messages to be displayed.
1 parent 18dfa31 commit 5467c98

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

lib/matplotlib/backends/backend_gtk3.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,11 +208,14 @@ def __init__(self, figure):
208208
self.set_can_focus(True)
209209
self._renderer_init()
210210
self._idle_event_id = GLib.idle_add(self.idle_event)
211+
default_context = GLib.main_context_get_thread_default() or GLib.main_context_default()
212+
self._idle_event_source = default_context.find_source_by_id(self._idle_event_id)
211213

212214
def destroy(self):
213215
#Gtk.DrawingArea.destroy(self)
214216
self.close_event()
215-
GLib.source_remove(self._idle_event_id)
217+
if not self._idle_event_source.is_destroyed():
218+
GLib.source_remove(self._idle_event_id)
216219
if self._idle_draw_id != 0:
217220
GLib.source_remove(self._idle_draw_id)
218221

0 commit comments

Comments
 (0)