bpo-41611: IDLE: fix freezing on completion on macOS (GH-26400)

This commit is contained in:
Tal Einat 2021-05-27 17:29:55 +03:00 committed by GitHub
parent 8cec740820
commit abc4bd5db9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 1 deletions

View File

@ -247,7 +247,13 @@ class AutoCompleteWindow:
text.see(self.startindex)
x, y, cx, cy = text.bbox(self.startindex)
acw = self.autocompletewindow
acw.update()
if platform.system().startswith('Windows'):
# On Windows an update() call is needed for the completion list
# window to be created, so that we can fetch its width and
# height. However, this is not needed on other platforms (tested
# on Ubuntu and macOS) but at one point began causing freezes on
# macOS. See issues 37849 and 41611.
acw.update()
acw_width, acw_height = acw.winfo_width(), acw.winfo_height()
text_width, text_height = text.winfo_width(), text.winfo_height()
new_x = text.winfo_rootx() + min(x, max(0, text_width - acw_width))

View File

@ -0,0 +1 @@
Fix IDLE sometimes freezing upon tab-completion on macOS.