diff options
| author | Tal Einat <taleinat+github@gmail.com> | 2018-08-02 09:18:29 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-08-02 09:18:29 +0300 |
| commit | 10ea9409ceb5da83cb380b610750551e26561044 (patch) | |
| tree | 202ccd012209ce6acb90928fa579a169eb4bd3ea /Lib/idlelib | |
| parent | 80b762f010097ab8137782e5fbdc89c5c620ed4e (diff) | |
| download | cpython-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.py | 2 | ||||
| -rw-r--r-- | Lib/idlelib/configdialog.py | 1 | ||||
| -rw-r--r-- | Lib/idlelib/help_about.py | 1 | ||||
| -rw-r--r-- | Lib/idlelib/query.py | 4 | ||||
| -rw-r--r-- | Lib/idlelib/textview.py | 1 |
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() |
