[Python-checkins] cpython (3.5): Issue #24745: Prevent IDLE initialization crash with Tk 8.4:

ned.deily python-checkins at python.org
Mon Aug 10 05:25:16 CEST 2015


https://hg.python.org/cpython/rev/e39c4373b83f
changeset:   97350:e39c4373b83f
branch:      3.5
parent:      97348:aa527ee0d27f
user:        Ned Deily <nad at acm.org>
date:        Sun Aug 09 23:21:29 2015 -0400
summary:
  Issue #24745: Prevent IDLE initialization crash with Tk 8.4:
"TkFixedFont" does not exist in 8.4.

files:
  Lib/idlelib/configHandler.py |  18 +++++++++++-------
  1 files changed, 11 insertions(+), 7 deletions(-)


diff --git a/Lib/idlelib/configHandler.py b/Lib/idlelib/configHandler.py
--- a/Lib/idlelib/configHandler.py
+++ b/Lib/idlelib/configHandler.py
@@ -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):

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list