Commit 99c1a6d5 authored by Terry Jan Reedy's avatar Terry Jan Reedy

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

parent eb49ccfd
...@@ -23,6 +23,7 @@ import os ...@@ -23,6 +23,7 @@ import os
import sys import sys
from ConfigParser import ConfigParser from ConfigParser import ConfigParser
from Tkinter import TkVersion
from tkFont import Font, nametofont from tkFont import Font, nametofont
class InvalidConfigType(Exception): pass class InvalidConfigType(Exception): pass
...@@ -689,13 +690,16 @@ class IdleConf: ...@@ -689,13 +690,16 @@ class IdleConf:
bold = self.GetOption(configType, section, 'font-bold', default=0, bold = self.GetOption(configType, section, 'font-bold', default=0,
type='bool') type='bool')
if (family == 'TkFixedFont'): if (family == 'TkFixedFont'):
f = Font(name='TkFixedFont', exists=True, root=root) if TkVersion < 8.5:
actualFont = Font.actual(f) family = 'Courier'
family = actualFont['family'] else:
size = actualFont['size'] f = Font(name='TkFixedFont', exists=True, root=root)
if size < 0: actualFont = Font.actual(f)
size = 10 # if font in pixels, ignore actual size family = actualFont['family']
bold = actualFont['weight']=='bold' 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') return (family, size, 'bold' if bold else 'normal')
def LoadCfgFiles(self): def LoadCfgFiles(self):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment