[Python-checkins] cpython (2.7): Issue #24745: Prevent IDLE initialization crash with Tk 8.4; patch by Ned Deily.

terry.reedy python-checkins at python.org
Fri Sep 4 10:39:57 CEST 2015


https://hg.python.org/cpython/rev/34a8078f6249
changeset:   97663:34a8078f6249
branch:      2.7
parent:      97655:252d4760f28b
user:        Terry Jan Reedy <tjreedy at udel.edu>
date:        Fri Sep 04 04:37:02 2015 -0400
summary:
  Issue #24745: Prevent IDLE initialization crash with Tk 8.4; patch by Ned Deily.

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
@@ -23,6 +23,7 @@
 import sys
 
 from ConfigParser import ConfigParser
+from Tkinter import TkVersion
 from tkFont import Font, nametofont
 
 class InvalidConfigType(Exception): pass
@@ -689,13 +690,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