classification
Title: IDLE: Handle bad highlight tab color config
Type: behavior Stage: test needed
Components: IDLE Versions: Python 3.10
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: terry.reedy Nosy List: terry.reedy
Priority: normal Keywords:

Created on 2020-07-29 03:33 by terry.reedy, last changed 2020-07-29 03:33 by terry.reedy.

Messages (1)
msg374558 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2020-07-29 03:33
https://stackoverflow.com/questions/35397377/python-freezes-when-configuring-idle froze IDLE with a custom theme missing 'colours for the blinker and highlighting'.  I reported some experiments there.  Tracebacks might help, but

Proposal 1: check theme before try to paint.  All keys present?  Replace missing with normal colors.


https://stackoverflow.com/questions/63137659/idle-crashing-when-i-press-configure-idle froze IDLE with a custom theme with a bad color "#00224".

 File "C:\Users\...\idlelib\configdialog.py", line 1279, in paint_theme_sample
    self.highlight_sample.tag_config(element, **colors)
...
_tkinter.TclError: invalid color name "#00224"

Proposal 2: wrap line in try-except, if error text matches, extract bad color, replace any occurrence of bad color with "#000000" (black) or "#FFFFFF" (white), report to user with suggestion to edit.  Maybe save first.  Should do within loop in case more errors.
History
Date User Action Args
2020-07-29 03:33:23terry.reedycreate