summaryrefslogtreecommitdiff
path: root/Lib/idlelib
diff options
context:
space:
mode:
authorTal Einat <taleinat+github@gmail.com>2018-08-02 09:18:29 +0300
committerGitHub <noreply@github.com>2018-08-02 09:18:29 +0300
commit10ea9409ceb5da83cb380b610750551e26561044 (patch)
tree202ccd012209ce6acb90928fa579a169eb4bd3ea /Lib/idlelib
parent80b762f010097ab8137782e5fbdc89c5c620ed4e (diff)
downloadcpython-git-10ea9409ceb5da83cb380b610750551e26561044.tar.gz
bpo-34120: fix IDLE freezing after closing dialogs (GH-8603)
Added missing .grab_release() calls to all places where we call .grab_set().
Diffstat (limited to 'Lib/idlelib')
-rw-r--r--Lib/idlelib/config_key.py2
-rw-r--r--Lib/idlelib/configdialog.py1
-rw-r--r--Lib/idlelib/help_about.py1
-rw-r--r--Lib/idlelib/query.py4
-rw-r--r--Lib/idlelib/textview.py1
5 files changed, 9 insertions, 0 deletions
diff --git a/Lib/idlelib/config_key.py b/Lib/idlelib/config_key.py
index 7f4bb49ec8..abab74265f 100644
--- a/Lib/idlelib/config_key.py
+++ b/Lib/idlelib/config_key.py
@@ -235,10 +235,12 @@ class GetKeysDialog(Toplevel):
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 c783238094..e682ec0da3 100644
--- a/Lib/idlelib/configdialog.py
+++ b/Lib/idlelib/configdialog.py
@@ -191,6 +191,7 @@ class ConfigDialog(Toplevel):
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 2a274a9304..64b13ac2ab 100644
--- a/Lib/idlelib/help_about.py
+++ b/Lib/idlelib/help_about.py
@@ -195,6 +195,7 @@ class AboutDialog(Toplevel):
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 15add6d127..c2628cceb7 100644
--- a/Lib/idlelib/query.py
+++ b/Lib/idlelib/query.py
@@ -143,6 +143,10 @@ class Query(Toplevel):
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 d9260e6c71..e78e297ab9 100644
--- a/Lib/idlelib/textview.py
+++ b/Lib/idlelib/textview.py
@@ -91,6 +91,7 @@ class ViewWindow(Toplevel):
def ok(self, event=None):
"""Dismiss text viewer dialog."""
+ self.grab_release()
self.destroy()