mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
#10907: Warn OS X 10.6 IDLE users to use ActiveState Tcl/Tk 8.5,
rather than the currently problematic Apple-supplied one, when running with the 64-/32-bit installer variant.
This commit is contained in:
parent
c5982967fc
commit
4ce92b23fe
5 changed files with 77 additions and 26 deletions
|
@ -1417,6 +1417,13 @@ def main():
|
|||
shell.interp.prepend_syspath(script)
|
||||
shell.interp.execfile(script)
|
||||
|
||||
# Check for problematic OS X Tk versions and print a warning message
|
||||
# in the IDLE shell window; this is less intrusive than always opening
|
||||
# a separate window.
|
||||
tkversionwarning = macosxSupport.tkVersionWarning(root)
|
||||
if tkversionwarning:
|
||||
shell.interp.runcommand(''.join(("print('", tkversionwarning, "')")))
|
||||
|
||||
root.mainloop()
|
||||
root.destroy()
|
||||
|
||||
|
|
|
@ -34,6 +34,23 @@ def isCarbonAquaTk(root):
|
|||
'AppKit' not in root.tk.call('winfo', 'server', '.'))
|
||||
return _carbonaquatk
|
||||
|
||||
def tkVersionWarning(root):
|
||||
"""
|
||||
Returns a string warning message if the Tk version in use appears to
|
||||
be one known to cause problems with IDLE. The Apple Cocoa-based Tk 8.5
|
||||
that was shipped with Mac OS X 10.6.
|
||||
"""
|
||||
|
||||
if (runningAsOSXApp() and
|
||||
('AppKit' in root.tk.call('winfo', 'server', '.')) and
|
||||
(root.tk.call('info', 'patchlevel') == '8.5.7') ):
|
||||
return (r"WARNING: The version of Tcl/Tk (8.5.7) in use may"
|
||||
r" be unstable.\n"
|
||||
r"Visit http://www.python.org/download/mac/tcltk/"
|
||||
r" for current information.")
|
||||
else:
|
||||
return False
|
||||
|
||||
def addOpenEventSupport(root, flist):
|
||||
"""
|
||||
This ensures that the application will respont to open AppleEvents, which
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue