]> granicus.if.org Git - python/commitdiff
Issue #5219: Prevent event handler cascade in IDLE.
authorMartin v. Löwis <martin@v.loewis.de>
Tue, 13 Mar 2012 21:18:36 +0000 (14:18 -0700)
committerMartin v. Löwis <martin@v.loewis.de>
Tue, 13 Mar 2012 21:18:36 +0000 (14:18 -0700)
Patch by Roger Serwy.

Lib/idlelib/CallTipWindow.py
Misc/NEWS

index 27ed0859c88d6bc0bfd054365bdcb5777bb5e062..a2431f8eff3022ba610511f4e15d653d4b13fbff 100644 (file)
@@ -22,6 +22,7 @@ class CallTip:
         self.parenline = self.parencol = None
         self.lastline = None
         self.hideid = self.checkhideid = None
+        self.checkhide_after_id = None
 
     def position_window(self):
         """Check if needs to reposition the window, and if so - do it."""
@@ -102,7 +103,10 @@ class CallTip:
             self.hidetip()
         else:
             self.position_window()
-            self.widget.after(CHECKHIDE_TIME, self.checkhide_event)
+            if self.checkhide_after_id is not None:
+                self.widget.after_cancel(self.checkhide_after_id)
+            self.checkhide_after_id = \
+                self.widget.after(CHECKHIDE_TIME, self.checkhide_event)
 
     def hide_event(self, event):
         if not self.tipwindow:
index 6d51cba8cf2b3dc3f830afecbe8dbc02a8425ea0..88e5e8404f87415f5ada2d8eaa449e0550a98693 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -24,6 +24,8 @@ Core and Builtins
 Library
 -------
 
+- Issue #5219: Prevent event handler cascade in IDLE.
+
 - Issue #3835: Refuse to use unthreaded Tcl in threaded Python.
 
 - Issue #2843: Add new Tk API to Tkinter.