bpo-43655: Tkinter and IDLE dialog windows are now recognized as dialogs by window managers on macOS and X Window (#25187)
diff --git a/Lib/idlelib/query.py b/Lib/idlelib/query.py
index 015fc7a..fefa5aa 100644
--- a/Lib/idlelib/query.py
+++ b/Lib/idlelib/query.py
@@ -28,6 +28,7 @@
from tkinter.ttk import Frame, Button, Entry, Label, Checkbutton
from tkinter import filedialog
from tkinter.font import Font
+from tkinter.simpledialog import _setup_dialog
class Query(Toplevel):
"""Base class for getting verified answer from a user.
@@ -60,13 +61,8 @@ def __init__(self, parent, title, message, *, text0='', used_names={},
if not _utest: # Otherwise fail when directly run unittest.
self.grab_set()
- windowingsystem = self.tk.call('tk', 'windowingsystem')
- if windowingsystem == 'aqua':
- try:
- self.tk.call('::tk::unsupported::MacWindowStyle', 'style',
- self._w, 'moveableModal', '')
- except:
- pass
+ _setup_dialog(self)
+ if self._windowingsystem == 'aqua':
self.bind("<Command-.>", self.cancel)
self.bind('<Key-Escape>', self.cancel)
self.protocol("WM_DELETE_WINDOW", self.cancel)