From: Terry Jan Reedy Date: Sun, 3 Jun 2012 00:22:35 +0000 (-0400) Subject: Issue 10365: Add and replace comments; condense defaulted attribute access. X-Git-Tag: v2.7.4rc1~773 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f0775131f9952a96260cea5943725ac35c629db0;p=thirdparty%2FPython%2Fcpython.git Issue 10365: Add and replace comments; condense defaulted attribute access. Code patch by Roger Serwy. --- diff --git a/Lib/idlelib/IOBinding.py b/Lib/idlelib/IOBinding.py index 5f1b8e476691..e429c100ba39 100644 --- a/Lib/idlelib/IOBinding.py +++ b/Lib/idlelib/IOBinding.py @@ -197,35 +197,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()