summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/pyshell.py
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2018-06-11 18:14:32 (GMT)
committerGitHub <noreply@github.com>2018-06-11 18:14:32 (GMT)
commit800415e3df69f494afe9f95a8563ce17609fe1da (patch)
tree70a721cdd892e7364c9a7a49ff38076f6fa8e91f /Lib/idlelib/pyshell.py
parent0e5f901508dea6437dc9ee89b434feca721d45be (diff)
downloadcpython-800415e3df69f494afe9f95a8563ce17609fe1da.zip
cpython-800415e3df69f494afe9f95a8563ce17609fe1da.tar.gz
cpython-800415e3df69f494afe9f95a8563ce17609fe1da.tar.bz2
bpo-33656: On Windows, add API call saying that tk scales for DPI (GH-7137)
On Windows 8.1+ or 10, with DPI compatibility properties of the Python binary unchanged, and a monitor resolution greater than 96 DPI, this should make text and lines sharper. It should otherwise have no effect. Using a magnifier, I determined that the improvement comes from horizontal and lines being better lined up with the monitor pixels. I checked that this call causes no problem on any Windows buildbot, including the Win7 buildbots. Unlike most IDLE patches, this one can be easily reverted by users by removing a few lines, at the top of idlelib/pyshell.py.
Diffstat (limited to 'Lib/idlelib/pyshell.py')
-rwxr-xr-xLib/idlelib/pyshell.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py
index ee13131..f39f156 100755
--- a/Lib/idlelib/pyshell.py
+++ b/Lib/idlelib/pyshell.py
@@ -8,6 +8,14 @@ except ImportError:
print("** IDLE can't import Tkinter.\n"
"Your Python may not be configured for Tk. **", file=sys.__stderr__)
raise SystemExit(1)
+
+if sys.platform == 'win32':
+ import ctypes
+ try:
+ ctypes.OleDLL('shcore').SetProcessDpiAwareness(1)
+ except (AttributeError, OSError):
+ pass
+
import tkinter.messagebox as tkMessageBox
if TkVersion < 8.5:
root = Tk() # otherwise create root in main