@@ -1216,19 +1216,6 @@ def draw(self, renderer):
12161216 if not self .get_visible ():
12171217 return
12181218
1219- renderer .open_group ('figure' )
1220- # prevent triggering call backs during the draw process
1221- self ._stale = True
1222- if self .get_tight_layout () and self .axes :
1223- try :
1224- self .tight_layout (renderer , ** self ._tight_parameters )
1225- except ValueError :
1226- pass
1227- # ValueError can occur when resizing a window.
1228-
1229- if self .frameon :
1230- self .patch .draw (renderer )
1231-
12321219 # a list of (zorder, func_to_call, list_of_args)
12331220 dsu = []
12341221
@@ -1258,11 +1245,24 @@ def draw(self, renderer):
12581245 dsu = [row for row in dsu if not row [1 ].get_animated ()]
12591246 dsu .sort (key = itemgetter (0 ))
12601247
1261- mimage ._draw_list_compositing_images (
1262- renderer , self , dsu , self .suppressComposite )
1248+ try :
1249+ renderer .open_group ('figure' )
1250+ if self .get_tight_layout () and self .axes :
1251+ try :
1252+ self .tight_layout (renderer , ** self ._tight_parameters )
1253+ except ValueError :
1254+ pass
1255+ # ValueError can occur when resizing a window.
1256+
1257+ if self .frameon :
1258+ self .patch .draw (renderer )
1259+
1260+ mimage ._draw_list_compositing_images (
1261+ renderer , self , dsu , self .suppressComposite )
12631262
1264- renderer .close_group ('figure' )
1265- self .stale = False
1263+ renderer .close_group ('figure' )
1264+ finally :
1265+ self .stale = False
12661266
12671267 self ._cachedRenderer = renderer
12681268 self .canvas .draw_event (renderer )
0 commit comments