mirror of https://github.com/python/cpython
Issue #24745: Prevent IDLE initialization crash with Tk 8.4:
"TkFixedFont" does not exist in 8.4.
This commit is contained in:
parent
131426ebe3
commit
4a3d96cafb
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue