diff options
author | Guido van Rossum <guido@python.org> | 1999-02-17 17:20:50 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1999-02-17 17:20:50 (GMT) |
commit | c4f752f803a20948826eff4601ea595d8b74bb96 (patch) | |
tree | e4611b1b816dd03e9536404041bfa0cdeb5016ad /Tools | |
parent | 5437ddfa36f785cd8d2a68dc35297173d88ca67c (diff) | |
download | cpython-c4f752f803a20948826eff4601ea595d8b74bb96.zip cpython-c4f752f803a20948826eff4601ea595d8b74bb96.tar.gz cpython-c4f752f803a20948826eff4601ea595d8b74bb96.tar.bz2 |
Fix up the Windows menu via the new callback mechanism instead of
depending on menu post commands (which don't work when the menu is
torn off).
Diffstat (limited to 'Tools')
-rw-r--r-- | Tools/idle/EditorWindow.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Tools/idle/EditorWindow.py b/Tools/idle/EditorWindow.py index 096f275..0aa31ea 100644 --- a/Tools/idle/EditorWindow.py +++ b/Tools/idle/EditorWindow.py @@ -7,6 +7,7 @@ from Tkinter import * import tkSimpleDialog import tkMessageBox import idlever +import WindowList # File menu @@ -159,7 +160,7 @@ class EditorWindow: menu.add_separator() end = end + 1 self.wmenu_end = end - menu.configure(postcommand=self.postwindowsmenu) + WindowList.register_callback(self.postwindowsmenu) def wakeup(self): if self.top.wm_state() == "iconic": @@ -196,7 +197,6 @@ class EditorWindow: end = -1 if end > self.wmenu_end: menu.delete(self.wmenu_end+1, end) - import WindowList WindowList.add_windows_to_menu(menu) rmenu = None @@ -441,6 +441,7 @@ class EditorWindow: self.top.tkraise() reply = self.maybesave() if reply != "cancel": + WindowList.unregister_callback(self.postwindowsmenu) if self.close_hook: self.close_hook() colorizing = 0 @@ -450,6 +451,7 @@ class EditorWindow: self.color.close(doh) # Cancel colorization if not colorizing: self.top.destroy() + self.top.after_idle(WindowList.call_callbacks) return reply def load_extensions(self): |