[Python-checkins] bpo-34120: fix IDLE freezing after closing dialogs (GH-8603)

Miss Islington (bot) webhook-mailer at python.org
Thu Aug 2 02:37:54 EDT 2018


https://github.com/python/cpython/commit/d9fc795487f74531ea43760469cc215858d0d908
commit: d9fc795487f74531ea43760469cc215858d0d908
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2018-08-01T23:37:50-07:00
summary:

bpo-34120: fix IDLE freezing after closing dialogs (GH-8603)


Added missing .grab_release() calls to all places where we call .grab_set().
(cherry picked from commit 10ea9409ceb5da83cb380b610750551e26561044)

Co-authored-by: Tal Einat <taleinat+github at gmail.com>

files:
A Misc/NEWS.d/next/IDLE/2018-08-01-23-25-38.bpo-34120.HgsIz-.rst
M Lib/idlelib/config_key.py
M Lib/idlelib/configdialog.py
M Lib/idlelib/help_about.py
M Lib/idlelib/query.py
M Lib/idlelib/textview.py

diff --git a/Lib/idlelib/config_key.py b/Lib/idlelib/config_key.py
index 7f4bb49ec8a6..abab74265f3e 100644
--- a/Lib/idlelib/config_key.py
+++ b/Lib/idlelib/config_key.py
@@ -235,10 +235,12 @@ def OK(self, event=None):
             return
         if (self.advanced or self.KeysOK(keys)) and self.bind_ok(keys):
             self.result = keys
+        self.grab_release()
         self.destroy()
 
     def Cancel(self, event=None):
         self.result=''
+        self.grab_release()
         self.destroy()
 
     def KeysOK(self, keys):
diff --git a/Lib/idlelib/configdialog.py b/Lib/idlelib/configdialog.py
index c78323809403..e682ec0da320 100644
--- a/Lib/idlelib/configdialog.py
+++ b/Lib/idlelib/configdialog.py
@@ -191,6 +191,7 @@ def cancel(self):
     def destroy(self):
         global font_sample_text
         font_sample_text = self.fontpage.font_sample.get('1.0', 'end')
+        self.grab_release()
         super().destroy()
 
     def help(self):
diff --git a/Lib/idlelib/help_about.py b/Lib/idlelib/help_about.py
index 2a274a930482..64b13ac2abb3 100644
--- a/Lib/idlelib/help_about.py
+++ b/Lib/idlelib/help_about.py
@@ -195,6 +195,7 @@ def display_file_text(self, title, filename, encoding=None):
 
     def ok(self, event=None):
         "Dismiss help_about dialog."
+        self.grab_release()
         self.destroy()
 
 
diff --git a/Lib/idlelib/query.py b/Lib/idlelib/query.py
index 15add6d12748..c2628cceb739 100644
--- a/Lib/idlelib/query.py
+++ b/Lib/idlelib/query.py
@@ -143,6 +143,10 @@ def cancel(self, event=None):  # Do not replace.
         self.result = None
         self.destroy()
 
+    def destroy(self):
+        self.grab_release()
+        super().destroy()
+
 
 class SectionName(Query):
     "Get a name for a config file section name."
diff --git a/Lib/idlelib/textview.py b/Lib/idlelib/textview.py
index d9260e6c7183..e78e297ab993 100644
--- a/Lib/idlelib/textview.py
+++ b/Lib/idlelib/textview.py
@@ -91,6 +91,7 @@ def __init__(self, parent, title, text, modal=True,
 
     def ok(self, event=None):
         """Dismiss text viewer dialog."""
+        self.grab_release()
         self.destroy()
 
 
diff --git a/Misc/NEWS.d/next/IDLE/2018-08-01-23-25-38.bpo-34120.HgsIz-.rst b/Misc/NEWS.d/next/IDLE/2018-08-01-23-25-38.bpo-34120.HgsIz-.rst
new file mode 100644
index 000000000000..f9954f7c1af0
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2018-08-01-23-25-38.bpo-34120.HgsIz-.rst
@@ -0,0 +1 @@
+Fix unresponsiveness after closing certain windows and dialogs.
\ No newline at end of file



More information about the Python-checkins mailing list