@@ -312,6 +312,9 @@ def __init__(self, flist=None, filename=None, key=None, root=None):
312312 else :
313313 self .update_menu_state ('options' , '*ine*umbers' , 'disabled' )
314314
315+ self .mtime = self .last_mtime ()
316+ text_frame .bind ('<FocusIn>' , self .focus_in_event )
317+
315318 def handle_winconfig (self , event = None ):
316319 self .set_width ()
317320
@@ -1027,6 +1030,8 @@ def get_saved(self):
10271030
10281031 def set_saved (self , flag ):
10291032 self .undo .set_saved (flag )
1033+ if flag :
1034+ self .mtime = self .last_mtime ()
10301035
10311036 def reset_undo (self ):
10321037 self .undo .reset_undo ()
@@ -1112,6 +1117,21 @@ def _close(self):
11121117 # unless override: unregister from flist, terminate if last window
11131118 self .close_hook ()
11141119
1120+ def last_mtime (self ):
1121+ file = self .io .filename
1122+ return os .path .getmtime (file ) if file else 0
1123+
1124+ def focus_in_event (self , event ):
1125+ mtime = self .last_mtime ()
1126+ if self .mtime != mtime :
1127+ self .mtime = mtime
1128+ if self . askyesno (
1129+ 'Reload' , '"%s"\n \n This script has been modified by another program.'
1130+ '\n Do you want to reload it?' % self .io .filename , parent = self .text ):
1131+ self .io .loadfile (self .io .filename )
1132+ else :
1133+ self .set_saved (False )
1134+
11151135 def load_extensions (self ):
11161136 self .extensions = {}
11171137 self .load_standard_extensions ()
0 commit comments