Skip to content

Commit bd0a3f8

Browse files
committed
FIX : first pass at fixing nbagg close issue
Add callback to destroy figure when the user hits the red x in the notebook. This is not the correct solution, but it (might) work for now.
1 parent 681bfd0 commit bd0a3f8

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

lib/matplotlib/backends/backend_nbagg.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,13 +231,22 @@ def new_figure_manager_given_figure(num, figure):
231231
"""
232232
Create a new figure manager instance for the given figure.
233233
"""
234+
from .._pylab_helpers import Gcf
235+
236+
def closer(event):
237+
Gcf.destroy(num)
238+
234239
canvas = FigureCanvasNbAgg(figure)
235240
if rcParams['nbagg.transparent']:
236241
figure.patch.set_alpha(0)
237242
manager = FigureManagerNbAgg(canvas, num)
243+
238244
if is_interactive():
239245
manager.show()
240246
figure.canvas.draw_idle()
247+
248+
canvas.mpl_connect('close_event', closer)
249+
241250
return manager
242251

243252

@@ -298,6 +307,7 @@ def on_message(self, message):
298307
message = json.loads(message['content']['data'])
299308
if message['type'] == 'closing':
300309
self.on_close()
310+
self.manager.canvas.close_event()
301311
elif message['type'] == 'supports_binary':
302312
self.supports_binary = message['value']
303313
else:

lib/matplotlib/backends/backend_webagg_core.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,7 @@ def handle_event(self, event):
329329
self.send_event('figure_label', label=figure_label)
330330
self._force_full = True
331331
self.draw_idle()
332+
332333
else:
333334
handler = getattr(self, 'handle_{0}'.format(e_type), None)
334335
if handler is None:

0 commit comments

Comments
 (0)