mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 13:11:29 +00:00 
			
		
		
		
	Merge with 3.2
Issue #10365: File open dialog now works instead of crashing even when parent window is closed. Patch by Roger Serwy.
This commit is contained in:
		
						commit
						935d5eb43f
					
				
					 3 changed files with 17 additions and 6 deletions
				
			
		|  | @ -156,7 +156,8 @@ def set_filename(self, filename): | ||||||
|                 self.filename_change_hook() |                 self.filename_change_hook() | ||||||
| 
 | 
 | ||||||
|     def open(self, event=None, editFile=None): |     def open(self, event=None, editFile=None): | ||||||
|         if self.editwin.flist: |         flist = self.editwin.flist | ||||||
|  |         if flist: | ||||||
|             if not editFile: |             if not editFile: | ||||||
|                 filename = self.askopenfile() |                 filename = self.askopenfile() | ||||||
|             else: |             else: | ||||||
|  | @ -167,16 +168,22 @@ def open(self, event=None, editFile=None): | ||||||
|                 # we open a new window.  But we won't replace the |                 # we open a new window.  But we won't replace the | ||||||
|                 # shell window (which has an interp(reter) attribute), which |                 # shell window (which has an interp(reter) attribute), which | ||||||
|                 # gets set to "not modified" at every new prompt. |                 # 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: |                 try: | ||||||
|                     interp = self.editwin.interp |                     interp = self.editwin.interp | ||||||
|                 except AttributeError: |                 except AttributeError: | ||||||
|                     interp = None |                     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: |                 else: | ||||||
|                     self.editwin.flist.open(filename) |                     flist.open(filename) | ||||||
|             else: |             else: | ||||||
|                 self.text.focus_set() |                 if self.text: | ||||||
|  |                     self.text.focus_set() | ||||||
|  |              | ||||||
|             return "break" |             return "break" | ||||||
|         # |         # | ||||||
|         # Code for use outside IDLE: |         # Code for use outside IDLE: | ||||||
|  |  | ||||||
|  | @ -1451,7 +1451,8 @@ def main(): | ||||||
|     if tkversionwarning: |     if tkversionwarning: | ||||||
|         shell.interp.runcommand(''.join(("print('", tkversionwarning, "')"))) |         shell.interp.runcommand(''.join(("print('", tkversionwarning, "')"))) | ||||||
| 
 | 
 | ||||||
|     root.mainloop() |     while flist.inversedict:  # keep IDLE running while files are open. | ||||||
|  |         root.mainloop() | ||||||
|     root.destroy() |     root.destroy() | ||||||
| 
 | 
 | ||||||
| if __name__ == "__main__": | if __name__ == "__main__": | ||||||
|  |  | ||||||
|  | @ -46,6 +46,9 @@ Core and Builtins | ||||||
| Library | Library | ||||||
| ------- | ------- | ||||||
| 
 | 
 | ||||||
|  | - Issue #10365: File open dialog now works instead of crashing | ||||||
|  |   even when parent window is closed. Patch by Roger Serwy. | ||||||
|  | 
 | ||||||
| - Issue #8739: Updated smtpd to support RFC 5321, and added support for the | - Issue #8739: Updated smtpd to support RFC 5321, and added support for the | ||||||
|   RFC 1870 SIZE extension. |   RFC 1870 SIZE extension. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Terry Jan Reedy
						Terry Jan Reedy