From: Julian Smart <julian@anthemion.co.uk>
Date: Tue, 18 Jan 2000 17:06:44 +0000 (+0000)
Subject: Avoided rounding errors in font point size calculations
X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/bf027a6daaeb9a89419fb57539f0899ffa413ea0

Avoided rounding errors in font point size calculations


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5502 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---

diff --git a/src/generic/proplist.cpp b/src/generic/proplist.cpp
index 6acfe87f88..399a819449 100644
--- a/src/generic/proplist.cpp
+++ b/src/generic/proplist.cpp
@@ -433,7 +433,7 @@ bool wxPropertyListView::CreateControls()
     wxFont guiFont = settings.GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
 
 #ifdef __WXMSW__
-    wxFont *boringFont = wxTheFontList->FindOrCreateFont(guiFont.GetPointSize()+1, wxMODERN, wxNORMAL, wxNORMAL, FALSE, "Courier New");
+    wxFont *boringFont = wxTheFontList->FindOrCreateFont(guiFont.GetPointSize(), wxMODERN, wxNORMAL, wxNORMAL, FALSE, "Courier New");
 #else
     wxFont *boringFont = wxTheFontList->FindOrCreateFont(guiFont.GetPointSize(), wxTELETYPE, wxNORMAL, wxNORMAL);
 #endif
diff --git a/src/msw/fontutil.cpp b/src/msw/fontutil.cpp
index 6d80870a22..92332ba22a 100644
--- a/src/msw/fontutil.cpp
+++ b/src/msw/fontutil.cpp
@@ -286,7 +286,8 @@ void wxFillLogFont(LOGFONT *logFont, const wxFont *font)
     int nHeight = (font->GetPointSize()*ppInch/72);
 #else
     // Correct for Windows compatibility
-    int nHeight = - (font->GetPointSize()*ppInch/72);
+//    int nHeight = - (font->GetPointSize()*ppInch/72);
+    int nHeight = - (int) ( (font->GetPointSize()*((double)ppInch)/72.0) + 0.5);
 #endif
 
     wxString facename = font->GetFaceName();
@@ -396,7 +397,7 @@ wxFont wxCreateFontFromLogFont(const LOGFONT *logFont)
 
     // remember that 1pt = 1/72inch
     int height = abs(logFont->lfHeight);
-    int fontPoints = (72*height)/GetDeviceCaps(dc, LOGPIXELSY);
+    int fontPoints = (int) ((72.0*((double)height))/(double) GetDeviceCaps(dc, LOGPIXELSY) + 0.5);
 
     ::ReleaseDC(NULL, dc);