bpo-4630: Add cursor no-blink option for IDLE (GH-16960) · python/cpython@a67bc10

@@ -236,6 +236,7 @@ def activate_config_changes(self):

236236

instance.set_notabs_indentwidth()

237237

instance.ApplyKeybindings()

238238

instance.reset_help_menu_entries()

239+

instance.update_cursor_blink()

239240

for klass in reloadables:

240241

klass.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):

18641868

StringVar(self), ('main', 'EditorWindow', 'width'))

18651869

self.win_height = tracers.add(

18661870

StringVar(self), ('main', 'EditorWindow', 'height'))

1871+

self.cursor_blink = tracers.add(

1872+

BooleanVar(self), ('main', 'EditorWindow', 'cursor-blink'))

18671873

self.autocomplete_wait = tracers.add(

18681874

StringVar(self), ('extensions', 'AutoComplete', 'popupwait'))

18691875

self.paren_style = tracers.add(

@@ -1920,6 +1926,11 @@ def create_page_general(self):

19201926

validatecommand=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+19231934

frame_autocomplete = Frame(frame_window, borderwidth=0,)

19241935

auto_wait_title = Label(frame_autocomplete,

19251936

text='Completions Popup Wait (milliseconds)')

@@ -2024,6 +2035,10 @@ def create_page_general(self):

20242035

win_height_title.pack(side=RIGHT, anchor=E, pady=5)

20252036

self.win_width_int.pack(side=RIGHT, anchor=E, padx=10, pady=5)

20262037

win_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.

20282043

frame_autocomplete.pack(side=TOP, padx=5, pady=0, fill=X)

20292044

auto_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'))

20792094

self.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'))

20812098

self.autocomplete_wait.set(idleConf.GetOption(

20822099

'extensions', 'AutoComplete', 'popupwait', type='int'))

20832100

self.paren_style.set(idleConf.GetOption(