From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Sat, 4 Jul 2026 00:45:38 +0000 (+0200) Subject: [3.14] gh-94523: IDLE: Detect file if modified and prompt the user to refresh (GH... X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c055770f7d3136a98741a37afbb9d13356fe443c;p=thirdparty%2FPython%2Fcpython.git [3.14] gh-94523: IDLE: Detect file if modified and prompt the user to refresh (GH-145625) (#152989) gh-94523: IDLE: Detect file if modified and prompt the user to refresh (GH-145625) (cherry picked from commit 6e2272d0b199d1ab992fffac5fc8e356d7342aec) Co-authored-by: Shixian Li --- diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py index e618ac9ce0d4..1f90389b1b15 100644 --- a/Lib/idlelib/editor.py +++ b/Lib/idlelib/editor.py @@ -312,6 +312,9 @@ class EditorWindow: else: self.update_menu_state('options', '*ine*umbers', 'disabled') + self.mtime = self.last_mtime() + text_frame.bind('', self.focus_in_event) + def handle_winconfig(self, event=None): self.set_width() @@ -1027,6 +1030,8 @@ class EditorWindow: def set_saved(self, flag): self.undo.set_saved(flag) + if flag: + self.mtime = self.last_mtime() def reset_undo(self): self.undo.reset_undo() @@ -1112,6 +1117,21 @@ class EditorWindow: # unless override: unregister from flist, terminate if last window self.close_hook() + def last_mtime(self): + file = self.io.filename + return os.path.getmtime(file) if file else 0 + + def focus_in_event(self, event): + mtime = self.last_mtime() + if self.mtime != mtime: + self.mtime = mtime + if self. askyesno( + 'Reload', '"%s"\n\nThis script has been modified by another program.' + '\nDo you want to reload it?' % self.io.filename, parent=self.text): + self.io.loadfile(self.io.filename) + else: + self.set_saved(False) + def load_extensions(self): self.extensions = {} self.load_standard_extensions() diff --git a/Misc/NEWS.d/next/IDLE/2026-03-07-20-47-40.gh-issue-94523.dq7m2k.rst b/Misc/NEWS.d/next/IDLE/2026-03-07-20-47-40.gh-issue-94523.dq7m2k.rst new file mode 100644 index 000000000000..831f6ac62876 --- /dev/null +++ b/Misc/NEWS.d/next/IDLE/2026-03-07-20-47-40.gh-issue-94523.dq7m2k.rst @@ -0,0 +1,2 @@ +Detect file if modified at local disk and prompt to ask refresh. Patch by +Shixian Li.