summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib
diff options
context:
space:
mode:
authorKurt B. Kaiser <kbk@shore.net>2007-10-04 02:09:17 (GMT)
committerKurt B. Kaiser <kbk@shore.net>2007-10-04 02:09:17 (GMT)
commit0b634efcbcd10d9364796e9b048f18cd4a08b88b (patch)
treefe9da924387eab4fd47891341d98b1888da6701b /Lib/idlelib
parent85897c9b38794c44d549c2e4b5f46cc6d1d57da4 (diff)
downloadcpython-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.py27
-rw-r--r--Lib/idlelib/FileList.py2
-rw-r--r--Lib/idlelib/NEWS.txt4
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