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

Skip to content

Commit 118876e

Browse files
Use finally to reset mainloop ownership
skip running mainloop if we already own one do cheaper test first
1 parent e7af5c9 commit 118876e

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

lib/matplotlib/backends/_backend_tk.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,7 @@ def destroy(self, *args):
460460

461461
self.window.destroy()
462462

463-
if not Gcf.get_num_fig_managers() and self._owns_mainloop:
463+
if self._owns_mainloop and not Gcf.get_num_fig_managers():
464464
self.window.quit()
465465

466466
def get_window_title(self):
@@ -884,6 +884,10 @@ def mainloop():
884884
if managers:
885885
first_manager = managers[0]
886886
manager_class = type(first_manager)
887+
if manager_class._owns_mainloop:
888+
return
887889
manager_class._owns_mainloop = True
888-
first_manager.window.mainloop()
889-
manager_class._owns_mainloop = False
890+
try:
891+
first_manager.window.mainloop()
892+
finally:
893+
manager_class._owns_mainloop = False

0 commit comments

Comments
 (0)