File tree Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Original file line number Diff line number Diff line change 2828 import tornado
2929except ImportError :
3030 raise RuntimeError ("The WebAgg backend requires Tornado." )
31+
3132import tornado .web
3233import tornado .ioloop
3334import tornado .websocket
@@ -254,7 +255,9 @@ def open(self, fignum):
254255 self .set_nodelay (True )
255256
256257 def on_close (self ):
257- Gcf .get_fig_manager (self .fignum ).remove_web_socket (self )
258+ manager = Gcf .get_fig_manager (self .fignum )
259+ if manager is not None :
260+ manager .remove_web_socket (self )
258261
259262 def on_message (self , message ):
260263 message = json .loads (message )
@@ -265,7 +268,11 @@ def on_message(self, message):
265268 self .supports_binary = message ['value' ]
266269 else :
267270 manager = Gcf .get_fig_manager (self .fignum )
268- manager .handle_json (message )
271+ # It is possible for a figure to be closed,
272+ # but a stale figure UI is still sending messages
273+ # from the browser.
274+ if manager is not None :
275+ manager .handle_json (message )
269276
270277 def send_json (self , content ):
271278 self .write_message (json .dumps (content ))
You can’t perform that action at this time.
0 commit comments