diff options
author | Terry Jan Reedy <tjreedy@udel.edu> | 2018-06-11 18:14:32 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-11 18:14:32 (GMT) |
commit | 800415e3df69f494afe9f95a8563ce17609fe1da (patch) | |
tree | 70a721cdd892e7364c9a7a49ff38076f6fa8e91f /Lib/idlelib/pyshell.py | |
parent | 0e5f901508dea6437dc9ee89b434feca721d45be (diff) | |
download | cpython-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-x | Lib/idlelib/pyshell.py | 8 |
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 |