bpo-33987: Use master ttk Frame for IDLE config dialog (GH-22943) · python/cpython@253c8eb
@@ -67,7 +67,6 @@ def __init__(self, parent, title='', *, _htest=False, _utest=False):
6767if not _utest:
6868self.withdraw()
696970-self.configure(borderwidth=5)
7170self.title(title or 'IDLE Preferences')
7271x = parent.winfo_rootx() + 20
7372y = parent.winfo_rooty() + (30 if not _htest else 150)
@@ -97,6 +96,7 @@ def create_widgets(self):
9796"""Create and place widgets for tabbed dialog.
98979998 Widgets Bound to self:
99+ frame: encloses all other widgets
100100 note: Notebook
101101 highpage: HighPage
102102 fontpage: FontPage
@@ -109,7 +109,9 @@ def create_widgets(self):
109109 load_configs: Load pages except for extensions.
110110 activate_config_changes: Tell editors to reload.
111111 """
112-self.note = note = Notebook(self)
112+self.frame = frame = Frame(self, padding="5px")
113+self.frame.grid(sticky="nwes")
114+self.note = note = Notebook(frame)
113115self.highpage = HighPage(note)
114116self.fontpage = FontPage(note, self.highpage)
115117self.keyspage = KeysPage(note)
@@ -148,7 +150,7 @@ def create_action_buttons(self):
148150padding_args = {}
149151else:
150152padding_args = {'padding': (6, 3)}
151-outer = Frame(self, padding=2)
153+outer = Frame(self.frame, padding=2)
152154buttons_frame = Frame(outer, padding=2)
153155self.buttons = {}
154156for txt, cmd in (
@@ -687,7 +689,7 @@ class HighPage(Frame):
687689688690def __init__(self, master):
689691super().__init__(master)
690-self.cd = master.master
692+self.cd = master.winfo_toplevel()
691693self.style = Style(master)
692694self.create_page_highlight()
693695self.load_theme_cfg()
@@ -1346,7 +1348,7 @@ class KeysPage(Frame):
1346134813471349def __init__(self, master):
13481350super().__init__(master)
1349-self.cd = master.master
1351+self.cd = master.winfo_toplevel()
13501352self.create_page_keys()
13511353self.load_key_cfg()
13521354