bpo-32857: Raise error when tkinter after_cancel() is called with None. (GH-5701) (GH-6620)
(cherry picked from commit 74382a3f175ac285cc924a73fd758e8dc3cc41bb)
diff --git a/Lib/lib-tk/Tkinter.py b/Lib/lib-tk/Tkinter.py
index b226fd5..f46642f 100644
--- a/Lib/lib-tk/Tkinter.py
+++ b/Lib/lib-tk/Tkinter.py
@@ -586,6 +586,7 @@
if not func:
# I'd rather use time.sleep(ms*0.001)
self.tk.call('after', ms)
+ return None
else:
def callit():
try:
@@ -609,11 +610,13 @@
"""Cancel scheduling of function identified with ID.
Identifier returned by after or after_idle must be
- given as first parameter."""
+ given as first parameter.
+ """
+ if not id:
+ raise ValueError('id must be a valid identifier returned from '
+ 'after or after_idle')
try:
data = self.tk.call('after', 'info', id)
- # In Tk 8.3, splitlist returns: (script, type)
- # In Tk 8.4, splitlist may return (script, type) or (script,)
script = self.tk.splitlist(data)[0]
self.deletecommand(script)
except TclError: