Issue #5219: Prevent event handler cascade in IDLE.

Patch by Roger Serwy.
This commit is contained in:
Martin v. Löwis 2012-03-13 14:32:29 -07:00
parent 7ca97d5208
commit eb945a938d
2 changed files with 7 additions and 1 deletions

View File

@ -22,6 +22,7 @@ class CallTip:
self.parenline = self.parencol = None self.parenline = self.parencol = None
self.lastline = None self.lastline = None
self.hideid = self.checkhideid = None self.hideid = self.checkhideid = None
self.checkhide_after_id = None
def position_window(self): def position_window(self):
"""Check if needs to reposition the window, and if so - do it.""" """Check if needs to reposition the window, and if so - do it."""
@ -102,7 +103,10 @@ class CallTip:
self.hidetip() self.hidetip()
else: else:
self.position_window() 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): def hide_event(self, event):
if not self.tipwindow: if not self.tipwindow:

View File

@ -22,6 +22,8 @@ Core and Builtins
Library Library
------- -------
- Issue #5219: Prevent event handler cascade in IDLE.
- Issue #14184: Increase the default stack size for secondary threads on - Issue #14184: Increase the default stack size for secondary threads on
Mac OS X to avoid interpreter crashes when using threads on 10.7. Mac OS X to avoid interpreter crashes when using threads on 10.7.