@@ -1091,19 +1091,6 @@ def draw(self, renderer):
10911091 if not self .get_visible ():
10921092 return
10931093
1094- renderer .open_group ('figure' )
1095- # prevent triggering call backs during the draw process
1096- self ._stale = True
1097- if self .get_tight_layout () and self .axes :
1098- try :
1099- self .tight_layout (renderer , ** self ._tight_parameters )
1100- except ValueError :
1101- pass
1102- # ValueError can occur when resizing a window.
1103-
1104- if self .frameon :
1105- self .patch .draw (renderer )
1106-
11071094 # a list of (zorder, func_to_call, list_of_args)
11081095 dsu = []
11091096
@@ -1133,11 +1120,24 @@ def draw(self, renderer):
11331120 dsu = [row for row in dsu if not row [1 ].get_animated ()]
11341121 dsu .sort (key = itemgetter (0 ))
11351122
1136- mimage ._draw_list_compositing_images (
1137- renderer , self , dsu , self .suppressComposite )
1123+ try :
1124+ renderer .open_group ('figure' )
1125+ if self .get_tight_layout () and self .axes :
1126+ try :
1127+ self .tight_layout (renderer , ** self ._tight_parameters )
1128+ except ValueError :
1129+ pass
1130+ # ValueError can occur when resizing a window.
1131+
1132+ if self .frameon :
1133+ self .patch .draw (renderer )
1134+
1135+ mimage ._draw_list_compositing_images (
1136+ renderer , self , dsu , self .suppressComposite )
11381137
1139- renderer .close_group ('figure' )
1140- self .stale = False
1138+ renderer .close_group ('figure' )
1139+ finally :
1140+ self .stale = False
11411141
11421142 self ._cachedRenderer = renderer
11431143 self .canvas .draw_event (renderer )
0 commit comments