summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorNed Deily <nad@acm.org>2015-08-10 03:21:29 (GMT)
committerNed Deily <nad@acm.org>2015-08-10 03:21:29 (GMT)
commit4a3d96cafbceb878e261681c1000811a8478da56 (patch)
tree6b5256cb8523dfd2e564d7c026660c78f10b0573 /Lib
parent131426ebe34f7781c3ab1e213ed4f521bf7cc2e0 (diff)
downloadcpython-4a3d96cafbceb878e261681c1000811a8478da56.zip
cpython-4a3d96cafbceb878e261681c1000811a8478da56.tar.gz
cpython-4a3d96cafbceb878e261681c1000811a8478da56.tar.bz2
Issue #24745: Prevent IDLE initialization crash with Tk 8.4:
"TkFixedFont" does not exist in 8.4.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/idlelib/configHandler.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/Lib/idlelib/configHandler.py b/Lib/idlelib/configHandler.py
index db3bcbc..83abad7 100644
--- a/Lib/idlelib/configHandler.py
+++ b/Lib/idlelib/configHandler.py
@@ -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):