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

Skip to content

Commit c0cb5b6

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 aad1619 commit c0cb5b6

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
@@ -220,13 +220,22 @@ def new_figure_manager_given_figure(num, figure):
220220
"""
221221
Create a new figure manager instance for the given figure.
222222
"""
223+
from .._pylab_helpers import Gcf
224+
225+
def closer(event):
226+
Gcf.destroy(num)
227+
223228
canvas = FigureCanvasNbAgg(figure)
224229
if rcParams['nbagg.transparent']:
225230
figure.patch.set_alpha(0)
226231
manager = FigureManagerNbAgg(canvas, num)
232+
227233
if is_interactive():
228234
manager.show()
229235
figure.canvas.draw_idle()
236+
237+
canvas.mpl_connect('close_event', closer)
238+
230239
return manager
231240

232241

@@ -287,6 +296,7 @@ def on_message(self, message):
287296
message = json.loads(message['content']['data'])
288297
if message['type'] == 'closing':
289298
self.on_close()
299+
self.manager.canvas.close_event()
290300
elif message['type'] == 'supports_binary':
291301
self.supports_binary = message['value']
292302
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)