mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
bpo-34864: warn if "Prefer tabs when opening documents" set to "Always" (#10464)
* bpo-34864: warn if "Prefer tabs when opening documents" set to "Always" * add NEWS entry * address code review comments * address second code review comments * Add entry for idlelib/NEWS.txt.
This commit is contained in:
parent
16501b7082
commit
9ebe8794f0
5 changed files with 69 additions and 9 deletions
|
@ -1,6 +1,8 @@
|
|||
"""
|
||||
A number of functions that enhance IDLE on macOS.
|
||||
"""
|
||||
from os.path import expanduser
|
||||
import plistlib
|
||||
from sys import platform # Used in _init_tk_type, changed by test.
|
||||
|
||||
import tkinter
|
||||
|
@ -79,14 +81,47 @@ def tkVersionWarning(root):
|
|||
patchlevel = root.tk.call('info', 'patchlevel')
|
||||
if patchlevel not in ('8.5.7', '8.5.9'):
|
||||
return False
|
||||
return (r"WARNING: The version of Tcl/Tk ({0}) in use may"
|
||||
r" be unstable.\n"
|
||||
r"Visit http://www.python.org/download/mac/tcltk/"
|
||||
r" for current information.".format(patchlevel))
|
||||
return ("WARNING: The version of Tcl/Tk ({0}) in use may"
|
||||
" be unstable.\n"
|
||||
"Visit http://www.python.org/download/mac/tcltk/"
|
||||
" for current information.".format(patchlevel))
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
def readSystemPreferences():
|
||||
"""
|
||||
Fetch the macOS system preferences.
|
||||
"""
|
||||
if platform != 'darwin':
|
||||
return None
|
||||
|
||||
plist_path = expanduser('~/Library/Preferences/.GlobalPreferences.plist')
|
||||
try:
|
||||
with open(plist_path, 'rb') as plist_file:
|
||||
return plistlib.load(plist_file)
|
||||
except OSError:
|
||||
return None
|
||||
|
||||
|
||||
def preferTabsPreferenceWarning():
|
||||
"""
|
||||
Warn if "Prefer tabs when opening documents" is set to "Always".
|
||||
"""
|
||||
if platform != 'darwin':
|
||||
return None
|
||||
|
||||
prefs = readSystemPreferences()
|
||||
if prefs and prefs.get('AppleWindowTabbingMode') == 'always':
|
||||
return (
|
||||
'WARNING: The system preference "Prefer tabs when opening'
|
||||
' documents" is set to "Always". This will cause various problems'
|
||||
' with IDLE. For the best experience, change this setting when'
|
||||
' running IDLE (via System Preferences -> Dock).'
|
||||
)
|
||||
return None
|
||||
|
||||
|
||||
## Fix the menu and related functions.
|
||||
|
||||
def addOpenEventSupport(root, flist):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue