diff --git a/Lib/lib-tk/tkSimpleDialog.py b/Lib/lib-tk/tkSimpleDialog.py index 02ea034b339..445048440a9 100644 --- a/Lib/lib-tk/tkSimpleDialog.py +++ b/Lib/lib-tk/tkSimpleDialog.py @@ -129,9 +129,10 @@ class Dialog(Toplevel): self.withdraw() self.update_idletasks() - self.apply() - - self.cancel() + try: + self.apply() + finally: + self.cancel() def cancel(self, event=None): diff --git a/Misc/NEWS b/Misc/NEWS index 6e50ed3c7b9..5b981553503 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -103,6 +103,9 @@ Extension Modules Library ------- +- Patch #1594554: Always close a tkSimpleDialog on ok(), even + if an exception occurs. + - Patch #1538878: Don't make tkSimpleDialog dialogs transient if the parent window is withdrawn.