]> git.saurik.com Git - wxWidgets.git/commitdiff
don't add 0.5 to GetTextExtent() results and do take trailing spaces into account...
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 6 Nov 2007 01:43:56 +0000 (01:43 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 6 Nov 2007 01:43:56 +0000 (01:43 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49671 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/graphics.cpp

index ba6e529f1256c269b1a7dd43f52f2d27921488a9..c7489e54a3d6e1f2dbbcc46b933013a423ccde9e 100644 (file)
@@ -1123,11 +1123,11 @@ void wxGDIPlusContext::GetTextExtent( const wxString &str, wxDouble *width, wxDo
         f->GetSize() / ffamily.GetEmHeight(FontStyleRegular);
 
     if ( height )
-        *height = rHeight * factorY + 0.5 ;
+        *height = rHeight * factorY;
     if ( descent )
-        *descent = rDescent * factorY + 0.5 ;
+        *descent = rDescent * factorY;
     if ( externalLeading )
-        *externalLeading = (rHeight - rAscent - rDescent) * factorY + 0.5 ;
+        *externalLeading = (rHeight - rAscent - rDescent) * factorY;
     // measuring empty strings is not guaranteed, so do it by hand
     if ( str.IsEmpty())
     {
@@ -1142,12 +1142,14 @@ void wxGDIPlusContext::GetTextExtent( const wxString &str, wxDouble *width, wxDo
         StringFormat strFormat;
         CharacterRange strRange(0,wcslen(s));
         strFormat.SetMeasurableCharacterRanges(1,&strRange);
+        strFormat.SetFormatFlags(StringFormatFlagsMeasureTrailingSpaces);
+
         Region region ;
         m_context->MeasureCharacterRanges(s, -1 , f,layoutRect, &strFormat,1,&region) ;
         RectF bbox ;
         region.GetBounds(&bbox,m_context);
         if ( width )
-            *width = bbox.GetRight()-bbox.GetLeft()+0.5;
+            *width = bbox.GetRight()-bbox.GetLeft();
     }
 }
 
@@ -1176,6 +1178,7 @@ void wxGDIPlusContext::GetPartialTextExtents(const wxString& text, wxArrayDouble
         ranges[i].Length = 1 ;
     }
     strFormat.SetMeasurableCharacterRanges(len,ranges);
+    strFormat.SetFormatFlags(StringFormatFlagsMeasureTrailingSpaces);
     m_context->MeasureCharacterRanges(ws, -1 , f,layoutRect, &strFormat,1,regions) ;
 
     RectF bbox ;