File tree Expand file tree Collapse file tree 1 file changed +10
-1
lines changed
Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -96,7 +96,16 @@ def _on_timer(self):
9696 # if _timer is None, this means that _timer_stop has been called; so
9797 # don't recreate the timer in that case.
9898 if not self ._single and self ._timer :
99- self ._timer = self .parent .after (self ._interval , self ._on_timer )
99+ if self ._interval > 0 :
100+ self ._timer = self .parent .after (self ._interval , self ._on_timer )
101+ else :
102+ # Edge case: Tcl after 0 *prepends* events to the queue
103+ # so a 0 interval does not allow any other events to run.
104+ # This incantation is cancellable and runs as fast as possible
105+ # while also allowing events and drawing every frame. GH#18236
106+ self ._timer = self .parent .after_idle (
107+ lambda : self .parent .after (self ._interval , self ._on_timer )
108+ )
100109 else :
101110 self ._timer = None
102111
You can’t perform that action at this time.
0 commit comments