8000 FIX : first pass at fixing nbagg close issue · matplotlib/matplotlib@f08e811 · GitHub
[go: up one dir, main page]

Skip to content

Commit f08e811

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 60eace2 commit f08e811

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

lib/matplotlib/backends/backend_nbagg.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,10 +223,16 @@ def new_figure_manager_given_figure(num, figure):
223223
"""
224224
Create a new figure manager instance for the given figure.
225225
"""
226+
from .._pylab_helpers import Gcf
227+
228+
def closer(event):
229+
Gcf.destroy(num)
230+
226231
canvas = FigureCanvasNbAgg(figure)
227232
if rcParams['nbagg.transparent']:
228233
figure.patch.set_alpha(0)
229234
manager = FigureManagerNbAgg(canvas, num)
235+
canvas.mpl_connect('close_event', closer)
230236
return manager
231237

232238

@@ -287,6 +293,7 @@ def on_message(self, message):
287293
message = json.loads(message['content']['data'])
288294
if message['type'] == 'closing':
289295
self.on_close()
296+
self.manager.canvas.close_event()
290297
elif message['type'] == 'supports_binary':
291298
self.supports_binary = message['value']
292299
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)
0