@@ -156,7 +156,7 @@ def __init__(self, figure):
156156 FigureCanvasBase .__init__ (self , figure )
157157 gtk .DrawingArea .__init__ (self )
158158
159- self ._idleID = 0
159+ self ._idle_draw_id = 0
160160 self ._need_redraw = True
161161 self ._pixmap_width = - 1
162162 self ._pixmap_height = - 1
@@ -177,11 +177,13 @@ def __init__(self, figure):
177177 self .set_flags (gtk .CAN_FOCUS )
178178 self ._renderer_init ()
179179
180- self ._idle_id = gobject .idle_add (self .idle_event )
180+ self ._idle_event_id = gobject .idle_add (self .idle_event )
181181
182182 def destroy (self ):
183- gtk .DrawingArea .destroy (self )
184- gobject .source_remove (self ._idle_id )
183+ #gtk.DrawingArea.destroy(self)
184+ gobject .source_remove (self ._idle_event_id )
185+ if self ._idle_draw_id != 0 :
186+ gobject .source_remove (self ._idle_draw_id )
185187
186188 def scroll_event (self , widget , event ):
187189 if _debug : print 'FigureCanvasGTK.%s' % fn_name ()
@@ -280,10 +282,10 @@ def draw(self):
280282 def draw_idle (self ):
281283 def idle_draw (* args ):
282284 self .draw ()
283- self ._idleID = 0
285+ self ._idle_draw_id = 0
284286 return False
285- if self ._idleID == 0 :
286- self ._idleID = gobject .idle_add (idle_draw )
287+ if self ._idle_draw_id == 0 :
288+ self ._idle_draw_id = gobject .idle_add (idle_draw )
287289
288290
289291 def _renderer_init (self ):
@@ -534,7 +536,7 @@ def __init__(self, canvas, window):
534536 self .win = window
535537 gtk .Toolbar .__init__ (self )
536538 NavigationToolbar2 .__init__ (self , canvas )
537- self ._idleId = 0
539+ self ._idle_draw_id = 0
538540
539541 self .connect ("destroy" , self .destroy )
540542
@@ -543,9 +545,11 @@ def destroy(self, *args):
543545 self .fileselect .destroy ()
544546 self .tooltips .destroy ()
545547 self .canvas .destroy ()
548+ if self ._idle_draw_id != 0 :
549+ gobject .remove_source (self ._idle_draw_id )
546550
547551 def set_message (self , s ):
548- if self ._idleId == 0 :
552+ if self ._idle_draw_id == 0 :
549553 self .message .set_label (s )
550554
551555 def set_cursor (self , cursor ):
@@ -587,16 +591,15 @@ def draw_rubberband(self, event, x0, y0, x1, y1):
587591 axrect = l ,b ,w ,h
588592 self ._imageBack = axrect , drawable .get_image (* axrect )
589593 drawable .draw_rectangle (gc , False , * rect )
590- self ._idleId = 0
594+ self ._idle_draw_id = 0
591595 else :
592596 def idle_draw (* args ):
593-
594597 drawable .draw_image (gc , imageBack , 0 , 0 , * lastrect )
595598 drawable .draw_rectangle (gc , False , * rect )
596- self ._idleId = 0
599+ self ._idle_draw_id = 0
597600 return False
598- if self ._idleId == 0 :
599- self ._idleId = gobject .idle_add (idle_draw )
601+ if self ._idle_draw_id == 0 :
602+ self ._idle_draw_id = gobject .idle_add (idle_draw )
600603
601604
602605 def _init_toolbar (self ):
0 commit comments