From 87342a6cec6c3239e9891481f7774ffeef4fa71f Mon Sep 17 00:00:00 2001 From: Neil Date: Thu, 11 Jun 2020 11:45:38 +1000 Subject: Backport: Bug [#2185]. Fix printing to use correct text size. Backport of changeset 8301:b006d175ac85. --- doc/ScintillaHistory.html | 4 ++++ win32/PlatWin.cxx | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 2338f4ece..1b0697810 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -586,6 +586,10 @@ Feature #1355.
  • + Fix printing on Windows to use correct text size. + Bug #2185. +
  • +
  • Fixed bug in Batch lexer where a single character line with a single character line end continued state onto the next line.
  • diff --git a/win32/PlatWin.cxx b/win32/PlatWin.cxx index 42b1dae53..11dc5d3ed 100644 --- a/win32/PlatWin.cxx +++ b/win32/PlatWin.cxx @@ -616,7 +616,9 @@ void SurfaceGDI::Init(SurfaceID sid, WindowID wid) { Release(); hdc = static_cast(sid); ::SetTextAlign(hdc, TA_BASELINE); - logPixelsY = DpiForWindow(wid); + // Windows on screen are scaled but printers are not. + const bool printing = ::GetDeviceCaps(hdc, TECHNOLOGY) != DT_RASDISPLAY; + logPixelsY = printing ? ::GetDeviceCaps(hdc, LOGPIXELSY) : DpiForWindow(wid); } void SurfaceGDI::InitPixMap(int width, int height, Surface *surface_, WindowID wid) { -- cgit v1.2.3