]> 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:32:29 +0000 (14:32 -0700)
committerMartin v. Löwis <martin@v.loewis.de>
Tue, 13 Mar 2012 21:32:29 +0000 (14:32 -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 295a425b030c3545b6604679a37a94eaae9469c0..eea3a17e7d8bbb07da477093f27895b903203863 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -22,6 +22,8 @@ Core and Builtins
 Library
 -------
 
+- Issue #5219: Prevent event handler cascade in IDLE.
+
 - Issue #14184: Increase the default stack size for secondary threads on
   Mac OS X to avoid interpreter crashes when using threads on 10.7.