Issue #24745: Prevent IDLE initialization crash with Tk 8.4; patch by Ned Deily.

This commit is contained in:
Terry Jan Reedy 2015-09-04 04:37:56 -04:00
parent 528a9ab1f0
commit 4fda56f44b
1 changed files with 11 additions and 7 deletions

View File

@ -22,6 +22,7 @@ import os
import sys
from configparser import ConfigParser
from tkinter import TkVersion
from tkinter.font import Font, nametofont
class InvalidConfigType(Exception): pass
@ -688,13 +689,16 @@ class IdleConf:
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):