bpo-4630: Add cursor no-blink option for IDLE (GH-16960) · python/cpython@a67bc10
@@ -236,6 +236,7 @@ def activate_config_changes(self):
236236instance.set_notabs_indentwidth()
237237instance.ApplyKeybindings()
238238instance.reset_help_menu_entries()
239+instance.update_cursor_blink()
239240for klass in reloadables:
240241klass.reload()
241242@@ -1820,6 +1821,9 @@ def create_page_general(self):
18201821 (*)win_width_int: Entry - win_width
18211822 win_height_title: Label
18221823 (*)win_height_int: Entry - win_height
1824+ frame_cursor_blink: Frame
1825+ cursor_blink_title: Label
1826+ (*)cursor_blink_bool: Checkbutton - cursor_blink
18231827 frame_autocomplete: Frame
18241828 auto_wait_title: Label
18251829 (*)auto_wait_int: Entry - autocomplete_wait
@@ -1864,6 +1868,8 @@ def create_page_general(self):
18641868StringVar(self), ('main', 'EditorWindow', 'width'))
18651869self.win_height = tracers.add(
18661870StringVar(self), ('main', 'EditorWindow', 'height'))
1871+self.cursor_blink = tracers.add(
1872+BooleanVar(self), ('main', 'EditorWindow', 'cursor-blink'))
18671873self.autocomplete_wait = tracers.add(
18681874StringVar(self), ('extensions', 'AutoComplete', 'popupwait'))
18691875self.paren_style = tracers.add(
@@ -1920,6 +1926,11 @@ def create_page_general(self):
19201926validatecommand=self.digits_only, validate='key',
19211927 )
192219281929+frame_cursor_blink = Frame(frame_window, borderwidth=0)
1930+cursor_blink_title = Label(frame_cursor_blink, text='Cursor Blink')
1931+self.cursor_blink_bool = Checkbutton(frame_cursor_blink,
1932+variable=self.cursor_blink, width=1)
1933+19231934frame_autocomplete = Frame(frame_window, borderwidth=0,)
19241935auto_wait_title = Label(frame_autocomplete,
19251936text='Completions Popup Wait (milliseconds)')
@@ -2024,6 +2035,10 @@ def create_page_general(self):
20242035win_height_title.pack(side=RIGHT, anchor=E, pady=5)
20252036self.win_width_int.pack(side=RIGHT, anchor=E, padx=10, pady=5)
20262037win_width_title.pack(side=RIGHT, anchor=E, pady=5)
2038+# frame_cursor_blink.
2039+frame_cursor_blink.pack(side=TOP, padx=5, pady=0, fill=X)
2040+cursor_blink_title.pack(side=LEFT, anchor=W, padx=5, pady=5)
2041+self.cursor_blink_bool.pack(side=LEFT, padx=5, pady=5)
20272042# frame_autocomplete.
20282043frame_autocomplete.pack(side=TOP, padx=5, pady=0, fill=X)
20292044auto_wait_title.pack(side=LEFT, anchor=W, padx=5, pady=5)
@@ -2078,6 +2093,8 @@ def load_general_cfg(self):
20782093'main', 'EditorWindow', 'width', type='int'))
20792094self.win_height.set(idleConf.GetOption(
20802095'main', 'EditorWindow', 'height', type='int'))
2096+self.cursor_blink.set(idleConf.GetOption(
2097+'main', 'EditorWindow', 'cursor-blink', type='bool'))
20812098self.autocomplete_wait.set(idleConf.GetOption(
20822099'extensions', 'AutoComplete', 'popupwait', type='int'))
20832100self.paren_style.set(idleConf.GetOption(