Fix for issue #10107: Without this patch IDLE on OSX doesn't warn about unsaved files when quitting.
diff --git a/Lib/idlelib/FileList.py b/Lib/idlelib/FileList.py
index 4c0076d..37a337e 100644
--- a/Lib/idlelib/FileList.py
+++ b/Lib/idlelib/FileList.py
@@ -48,7 +48,7 @@
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 346f04d..f5e3040 100644
--- a/Lib/idlelib/macosxSupport.py
+++ b/Lib/idlelib/macosxSupport.py
@@ -103,6 +103,11 @@
if flist:
root.bind('<<close-all-windows>>', 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')