mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	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:
		
							parent
							
								
									809309a482
								
							
						
					
					
						commit
						cd6b8c67ce
					
				
					 3 changed files with 17 additions and 6 deletions
				
			
		|  | @ -156,7 +156,8 @@ def set_filename(self, filename): | |||
|                 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: | ||||
|  | @ -167,16 +168,22 @@ def open(self, event=None, editFile=None): | |||
|                 # 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: | ||||
|  |  | |||
|  | @ -1435,7 +1435,8 @@ def main(): | |||
|     if tkversionwarning: | ||||
|         shell.interp.runcommand(''.join(("print('", tkversionwarning, "')"))) | ||||
| 
 | ||||
|     root.mainloop() | ||||
|     while flist.inversedict:  # keep IDLE running while files are open. | ||||
|         root.mainloop() | ||||
|     root.destroy() | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|  |  | |||
|  | @ -67,6 +67,9 @@ Core and Builtins | |||
| Library | ||||
| ------- | ||||
| 
 | ||||
| - Issue #10365: File open dialog now works instead of crashing | ||||
|   even when parent window is closed. Patch by Roger Serwy. | ||||
| 
 | ||||
| - Issue #14876: Use user-selected font for highlight configuration. | ||||
| 
 | ||||
| - Issue #14920: Fix the help(urllib.parse) failure on locale C on terminals. | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Terry Jan Reedy
						Terry Jan Reedy