Skip to content

Commit 10ea940

Browse files
authored
bpo-34120: fix IDLE freezing after closing dialogs (GH-8603)
Added missing .grab_release() calls to all places where we call .grab_set().
1 parent 80b762f commit 10ea940

File tree

6 files changed

+10
-0
lines changed

6 files changed

+10
-0
lines changed

Lib/idlelib/config_key.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,10 +235,12 @@ def OK(self, event=None):
235235
return
236236
if (self.advanced or self.KeysOK(keys)) and self.bind_ok(keys):
237237
self.result = keys
238+
self.grab_release()
238239
self.destroy()
239240

240241
def Cancel(self, event=None):
241242
self.result=''
243+
self.grab_release()
242244
self.destroy()
243245

244246
def KeysOK(self, keys):

Lib/idlelib/configdialog.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ def cancel(self):
191191
def destroy(self):
192192
global font_sample_text
193193
font_sample_text = self.fontpage.font_sample.get('1.0', 'end')
194+
self.grab_release()
194195
super().destroy()
195196

196197
def help(self):

Lib/idlelib/help_about.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ def display_file_text(self, title, filename, encoding=None):
195195

196196
def ok(self, event=None):
197197
"Dismiss help_about dialog."
198+
self.grab_release()
198199
self.destroy()
199200

200201

Lib/idlelib/query.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,10 @@ def cancel(self, event=None): # Do not replace.
143143
self.result = None
144144
self.destroy()
145145

146+
def destroy(self):
147+
self.grab_release()
148+
super().destroy()
149+
146150

147151
class SectionName(Query):
148152
"Get a name for a config file section name."

Lib/idlelib/textview.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ def __init__(self, parent, title, text, modal=True,
9191

9292
def ok(self, event=None):
9393
"""Dismiss text viewer dialog."""
94+
self.grab_release()
9495
self.destroy()
9596

9697

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix unresponsiveness after closing certain windows and dialogs.

0 commit comments

Comments
 (0)