Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 933f48f

Browse files
committed
Return from draw_idle as soon as possible if the redraw has already been scheduled
1 parent b1b4fb8 commit 933f48f

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

lib/matplotlib/backends/backend_gtk.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -372,14 +372,15 @@ def draw(self):
372372
self.window.process_updates (False)
373373

374374
def draw_idle(self):
375+
if self._idle_draw_id != 0:
376+
return
375377
def idle_draw(*args):
376378
try:
377379
self.draw()
378380
finally:
379381
self._idle_draw_id = 0
380382
return False
381-
if self._idle_draw_id == 0:
382-
self._idle_draw_id = gobject.idle_add(idle_draw)
383+
self._idle_draw_id = gobject.idle_add(idle_draw)
383384

384385

385386
def _renderer_init(self):

lib/matplotlib/backends/backend_gtk3.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -336,14 +336,15 @@ def draw(self):
336336
self.get_property("window").process_updates (False)
337337

338338
def draw_idle(self):
339+
if self._idle_draw_id != 0:
340+
return
339341
def idle_draw(*args):
340342
try:
341343
self.draw()
342344
finally:
343345
self._idle_draw_id = 0
344346
return False
345-
if self._idle_draw_id == 0:
346-
self._idle_draw_id = GLib.idle_add(idle_draw)
347+
self._idle_draw_id = GLib.idle_add(idle_draw)
347348

348349
def new_timer(self, *args, **kwargs):
349350
"""

lib/matplotlib/backends/backend_tkagg.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -363,16 +363,18 @@ def blit(self, bbox=None):
363363

364364
def draw_idle(self):
365365
'update drawing area only if idle'
366-
d = self._idle
366+
if self._idle is False:
367+
return
368+
367369
self._idle = False
370+
368371
def idle_draw(*args):
369372
try:
370373
self.draw()
371374
finally:
372375
self._idle = True
373376

374-
if d:
375-
self._idle_callback = self._tkcanvas.after_idle(idle_draw)
377+
self._idle_callback = self._tkcanvas.after_idle(idle_draw)
376378

377379
def get_tk_widget(self):
378380
"""returns the Tk widget used to implement FigureCanvasTkAgg.

0 commit comments

Comments
 (0)