[Python-checkins] cpython (3.4): 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:58 CEST 2015


https://hg.python.org/cpython/rev/b4830b9f8c10
changeset:   97664:b4830b9f8c10
branch:      3.4
parent:      97633:94f61fe22edf
user:        Terry Jan Reedy <tjreedy at udel.edu>
date:        Fri Sep 04 04:37:56 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
@@ -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