changeset: 97350:e39c4373b83f branch: 3.5 parent: 97348:aa527ee0d27f user: Ned Deily date: Sun Aug 09 23:21:29 2015 -0400 files: Lib/idlelib/configHandler.py description: Issue #24745: Prevent IDLE initialization crash with Tk 8.4: "TkFixedFont" does not exist in 8.4. diff -r aa527ee0d27f -r e39c4373b83f Lib/idlelib/configHandler.py --- a/Lib/idlelib/configHandler.py Sun Aug 09 18:21:58 2015 -0400 +++ b/Lib/idlelib/configHandler.py Sun Aug 09 23:21:29 2015 -0400 @@ -22,6 +22,7 @@ import sys from configparser import ConfigParser +from tkinter import TkVersion from tkinter.font import Font, nametofont class InvalidConfigType(Exception): pass @@ -688,13 +689,16 @@ bold = self.GetOption(configType, section, 'font-bold', default=0, type='bool') if (family == 'TkFixedFont'): - f = Font(name='TkFixedFont', exists=True, root=root) - actualFont = Font.actual(f) - family = actualFont['family'] - size = actualFont['size'] - if size < 0: - size = 10 # if font in pixels, ignore actual size - bold = actualFont['weight']=='bold' + if TkVersion < 8.5: + family = 'Courier' + else: + f = Font(name='TkFixedFont', exists=True, root=root) + actualFont = Font.actual(f) + family = actualFont['family'] + size = actualFont['size'] + if size < 0: + size = 10 # if font in pixels, ignore actual size + bold = actualFont['weight']=='bold' return (family, size, 'bold' if bold else 'normal') def LoadCfgFiles(self):