@@ -1091,19 +1091,6 @@ def draw(self, renderer):
1091
1091
if not self .get_visible ():
1092
1092
return
1093
1093
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
-
1107
1094
# a list of (zorder, func_to_call, list_of_args)
1108
1095
dsu = []
1109
1096
@@ -1133,11 +1120,24 @@ def draw(self, renderer):
1133
1120
dsu = [row for row in dsu if not row [1 ].get_animated ()]
1134
1121
dsu .sort (key = itemgetter (0 ))
1135
1122
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 )
1138
1137
1139
- renderer .close_group ('figure' )
1140
- self .stale = False
1138
+ renderer .close_group ('figure' )
1139
+ finally :
1140
+ self .stale = False
1141
1141
1142
1142
self ._cachedRenderer = renderer
1143
1143
self .canvas .draw_event (renderer )
0 commit comments