From a85b671cb6f71b7c80f4d4cf5e08d14c2c52a235 Mon Sep 17 00:00:00 2001 From: Ronald Oussoren Date: Tue, 7 Dec 2010 15:31:07 +0000 Subject: [PATCH] Merged revisions 87119 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r87119 | ronald.oussoren | 2010-12-07 16:28:10 +0100 (Tue, 07 Dec 2010) | 2 lines Fix for issue #10107: Without this patch IDLE on OSX doesn't warn about unsaved files when quitting. ........ --- Lib/idlelib/FileList.py | 2 +- Lib/idlelib/macosxSupport.py | 5 +++++ Misc/NEWS | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Lib/idlelib/FileList.py b/Lib/idlelib/FileList.py index 4c0076d3b6f..37a337ed9a6 100644 --- a/Lib/idlelib/FileList.py +++ b/Lib/idlelib/FileList.py @@ -48,7 +48,7 @@ class FileList: def new(self, filename=None): return self.EditorWindow(self, filename) - def close_all_callback(self, event): + def close_all_callback(self, *args, **kwds): for edit in list(self.inversedict): reply = edit.close() if reply == "cancel": diff --git a/Lib/idlelib/macosxSupport.py b/Lib/idlelib/macosxSupport.py index d2705300d75..9b677e1d3b5 100644 --- a/Lib/idlelib/macosxSupport.py +++ b/Lib/idlelib/macosxSupport.py @@ -97,6 +97,11 @@ def overrideRootMenu(root, flist): if flist: root.bind('<>', flist.close_all_callback) + # The binding above doesn't reliably work on all versions of Tk + # on MacOSX. Adding command definition below does seem to do the + # right thing for now. + root.createcommand('exit', flist.close_all_callback) + ###check if Tk version >= 8.4.14; if so, use hard-coded showprefs binding tkversion = root.tk.eval('info patchlevel') diff --git a/Misc/NEWS b/Misc/NEWS index fc3b9a0391c..7eac6445c14 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -17,6 +17,8 @@ Core and Builtins Library ------- +- Issue #10107: Warn about unsaved files in IDLE on OSX. + - Issue #7904: Changes to urllib.parse.urlsplit to handle schemes as defined by RFC3986. Anything before :// is considered a scheme and is followed by an authority (or netloc) and by '/' led path, which is optional.