From 5de6d57017de5e426d5ba3ce25686f9a0ffa8eef Mon Sep 17 00:00:00 2001 From: kempdogg <118639987+kempdogg@users.noreply.github.com> Date: Sun, 2 Nov 2025 13:48:36 -0500 Subject: [PATCH] Fix key release bindings and unsaved confirmation --- scripts/python_learning_editor.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/scripts/python_learning_editor.py b/scripts/python_learning_editor.py index 4feee5e67..e8b6815c1 100644 --- a/scripts/python_learning_editor.py +++ b/scripts/python_learning_editor.py @@ -284,7 +284,7 @@ class PythonLearningEditor: self.text.bind("", self._update_helper_panel) self.text.bind("", self._show_autocomplete) self.text.bind("", self._update_status_bar) - self.text.bind("", self._update_status_bar) + self.text.bind("", self._update_status_bar, add="+") self.text.bind("<>", self._update_helper_panel) self.text.bind("", lambda event: self._run_event(self.run_code)) self.text.bind("", lambda event: self._run_event(self.run_selection)) @@ -525,13 +525,20 @@ class PythonLearningEditor: self.save_file() def _confirm_unsaved_changes(self) -> bool: - if self.text.edit_modified(): - answer = messagebox.askyesnocancel("Unsaved changes", "Save the current file before proceeding?") - if answer is None: + if not self.text.edit_modified(): + return True + + answer = messagebox.askyesnocancel( + "Unsaved changes", "Save the current file before proceeding?" + ) + if answer is None: + return False + if answer: + self.save_file() + if self.text.edit_modified(): return False - if answer: - self.save_file() - self.text.edit_modified(False) + else: + self.text.edit_modified(False) return True def _undo(self) -> None: