@@ -165,8 +165,7 @@ class FigureCanvasTk(FigureCanvasBase):
165
165
alternative = "get_tk_widget().bind('<Configure>', ..., True)" )
166
166
def __init__ (self , figure = None , master = None , resize_callback = None ):
167
167
super ().__init__ (figure )
168
- self ._idle = True
169
- self ._idle_callback = None
168
+ self ._idle_draw_id = None
170
169
w , h = self .figure .bbox .size .astype (int )
171
170
self ._tkcanvas = tk .Canvas (
172
171
master = master , background = "white" ,
@@ -230,18 +229,16 @@ def resize(self, event):
230
229
231
230
def draw_idle (self ):
232
231
# docstring inherited
233
- if not self ._idle :
232
+ if self ._idle_draw_id :
234
233
return
235
234
236
- self ._idle = False
237
-
238
235
def idle_draw (* args ):
239
236
try :
240
237
self .draw ()
241
238
finally :
242
- self ._idle = True
239
+ self ._idle_draw_id = None
243
240
244
- self ._idle_callback = self ._tkcanvas .after_idle (idle_draw )
241
+ self ._idle_draw_id = self ._tkcanvas .after_idle (idle_draw )
245
242
246
243
def get_tk_widget (self ):
247
244
"""
@@ -438,8 +435,8 @@ def destroy(*args):
438
435
self ._shown = True
439
436
440
437
def destroy (self , * args ):
441
- if self .canvas ._idle_callback :
442
- self .canvas ._tkcanvas .after_cancel (self .canvas ._idle_callback )
438
+ if self .canvas ._idle_draw_id :
439
+ self .canvas ._tkcanvas .after_cancel (self .canvas ._idle_draw_id )
443
440
444
441
# NOTE: events need to be flushed before issuing destroy (GH #9956),
445
442
# however, self.window.update() can break user code. This is the
0 commit comments