Merge with 3.2 #10365

This commit is contained in:
Terry Jan Reedy 2012-06-02 20:24:21 -04:00
commit 361baaddcf
1 changed files with 13 additions and 16 deletions

View File

@ -157,35 +157,32 @@ class IOBinding:
def open(self, event=None, editFile=None):
flist = self.editwin.flist
# Save in case parent window is closed (ie, during askopenfile()).
if flist:
if not editFile:
filename = self.askopenfile()
else:
filename=editFile
if filename:
# If the current window has no filename and hasn't been
# modified, we replace its contents (no loss). Otherwise
# we open a new window. But we won't replace the
# shell window (which has an interp(reter) attribute), which
# gets set to "not modified" at every new prompt.
# Also, make sure the current window has not been closed,
# since it can be closed during the Open File dialog.
try:
interp = self.editwin.interp
except AttributeError:
interp = None
if self.editwin and not self.filename and \
self.get_saved() and not interp:
# If editFile is valid and already open, flist.open will
# shift focus to its existing window.
# If the current window exists and is a fresh unnamed,
# unmodified editor window (not an interpreter shell),
# pass self.loadfile to flist.open so it will load the file
# in the current window (if the file is not already open)
# instead of a new window.
if (self.editwin and
not getattr(self.editwin, 'interp', None) and
not self.filename and
self.get_saved()):
flist.open(filename, self.loadfile)
else:
flist.open(filename)
else:
if self.text:
self.text.focus_set()
return "break"
#
# Code for use outside IDLE:
if self.get_saved():
reply = self.maybesave()