diff options
author | Kurt B. Kaiser <kbk@shore.net> | 2007-10-04 02:09:17 (GMT) |
---|---|---|
committer | Kurt B. Kaiser <kbk@shore.net> | 2007-10-04 02:09:17 (GMT) |
commit | 0b634efcbcd10d9364796e9b048f18cd4a08b88b (patch) | |
tree | fe9da924387eab4fd47891341d98b1888da6701b /Lib/idlelib | |
parent | 85897c9b38794c44d549c2e4b5f46cc6d1d57da4 (diff) | |
download | cpython-0b634efcbcd10d9364796e9b048f18cd4a08b88b.zip cpython-0b634efcbcd10d9364796e9b048f18cd4a08b88b.tar.gz cpython-0b634efcbcd10d9364796e9b048f18cd4a08b88b.tar.bz2 |
Clean up EditorWindow close.
Diffstat (limited to 'Lib/idlelib')
-rw-r--r-- | Lib/idlelib/EditorWindow.py | 27 | ||||
-rw-r--r-- | Lib/idlelib/FileList.py | 2 | ||||
-rw-r--r-- | Lib/idlelib/NEWS.txt | 4 |
3 files changed, 19 insertions, 14 deletions
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py index 35771ef..e711500 100644 --- a/Lib/idlelib/EditorWindow.py +++ b/Lib/idlelib/EditorWindow.py @@ -560,7 +560,8 @@ class EditorWindow(object): def close_hook(self): if self.flist: - self.flist.close_edit(self) + self.flist.unregister_maybe_terminate(self) + self.flist = None def set_close_hook(self, close_hook): self.close_hook = close_hook @@ -827,22 +828,21 @@ class EditorWindow(object): if self.io.filename: self.update_recent_files_list(new_file=self.io.filename) WindowList.unregister_callback(self.postwindowsmenu) - if self.close_hook: - self.close_hook() - self.flist = None - colorizing = 0 self.unload_extensions() - self.io.close(); self.io = None - self.undo = None # XXX + self.io.close() + self.io = None + self.undo = None if self.color: - colorizing = self.color.colorizing - doh = colorizing and self.top - self.color.close(doh) # Cancel colorization + self.color.close(False) + self.color = None self.text = None self.tkinter_vars = None - self.per.close(); self.per = None - if not colorizing: - self.top.destroy() + self.per.close() + self.per = None + self.top.destroy() + if self.close_hook: + # unless override: unregister from flist, terminate if last window + self.close_hook() def load_extensions(self): self.extensions = {} @@ -1504,6 +1504,7 @@ def test(): filename = None edit = EditorWindow(root=root, filename=filename) edit.set_close_hook(root.quit) + edit.text.bind("<<close-all-windows>>", edit.close_event) root.mainloop() root.destroy() diff --git a/Lib/idlelib/FileList.py b/Lib/idlelib/FileList.py index 4b57901..e40c7a7 100644 --- a/Lib/idlelib/FileList.py +++ b/Lib/idlelib/FileList.py @@ -50,7 +50,7 @@ class FileList: break return "break" - def close_edit(self, edit): + def unregister_maybe_terminate(self, edit): try: key = self.inversedict[edit] except KeyError: diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index 86802ff..b18d030 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -3,6 +3,8 @@ What's New in IDLE 2.6a1? *Release date: XX-XXX-200X* +- Clean up EditorWindow close. + - Corrected some bugs in AutoComplete. Also, Page Up/Down in ACW implemented; mouse and cursor selection in ACWindow implemented; double Tab inserts current selection and closes ACW (similar to double-click and Return); scroll @@ -24,6 +26,8 @@ What's New in IDLE 2.6a1? - Bug #813342: Start the IDLE subprocess with -Qnew if the parent is started with that option. +- Honor the "Cancel" action in the save dialog (Debian bug #299092) + - Some syntax errors were being caught by tokenize during the tabnanny check, resulting in obscure error messages. Do the syntax check first. Bug 1562716, 1562719 |