From eaa7e7825e9f4b211bc104cfde6cc951f9dcb94e Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Sat, 26 May 2012 20:33:32 -0400 Subject: Issue #10365: File open dialog now works instead of crashing even when parent window is closed. Patch by Roger Serwy. --- Lib/idlelib/IOBinding.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'Lib/idlelib/IOBinding.py') diff --git a/Lib/idlelib/IOBinding.py b/Lib/idlelib/IOBinding.py index c515432ddc..e11253ef96 100644 --- a/Lib/idlelib/IOBinding.py +++ b/Lib/idlelib/IOBinding.py @@ -196,7 +196,8 @@ class IOBinding: self.filename_change_hook() def open(self, event=None, editFile=None): - if self.editwin.flist: + flist = self.editwin.flist + if flist: if not editFile: filename = self.askopenfile() else: @@ -207,16 +208,22 @@ class IOBinding: # 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 not self.filename and self.get_saved() and not interp: - self.editwin.flist.open(filename, self.loadfile) + + if self.editwin and not self.filename and \ + self.get_saved() and not interp: + flist.open(filename, self.loadfile) else: - self.editwin.flist.open(filename) + flist.open(filename) else: - self.text.focus_set() + if self.text: + self.text.focus_set() + return "break" # # Code for use outside IDLE: -- cgit v1.2.1