From e170515a9b895080d683dc73b2fdc6299eaae2f6 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 27 Dec 2011 01:21:33 +0000 Subject: [PATCH] Fix the size of the font returned by wxTextCtrl::GetStyle() in MSW. CHARFORMAT stores height in 1/20th of a point, not pixels. Add the correct conversion to the units used by LOGFONT. See #13384. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70122 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/textctrl.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/msw/textctrl.cpp b/src/msw/textctrl.cpp index 4792c8de81..c963a170b3 100644 --- a/src/msw/textctrl.cpp +++ b/src/msw/textctrl.cpp @@ -2740,7 +2740,10 @@ bool wxTextCtrl::GetStyle(long position, wxTextAttr& style) LOGFONT lf; - lf.lfHeight = cf.yHeight; + // Convert the height from the units of 1/20th of the point in which + // CHARFORMAT stores it to pixel-based units used by LOGFONT. + const wxCoord ppi = wxClientDC(this).GetPPI().y; + lf.lfHeight = -MulDiv(cf.yHeight/2, ppi, 72); lf.lfWidth = 0; lf.lfCharSet = ANSI_CHARSET; // FIXME: how to get correct charset? lf.lfClipPrecision = 0; -- 2.45.2