You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by hd...@apache.org on 2014/05/06 11:07:50 UTC

svn commit: r1592692 - /openoffice/trunk/main/vcl/aqua/source/gdi/ctfonts.cxx

Author: hdu
Date: Tue May  6 09:07:50 2014
New Revision: 1592692

URL: http://svn.apache.org/r1592692
Log:
#i124823# fix the calculation of leading metrics for CoreText

Modified:
    openoffice/trunk/main/vcl/aqua/source/gdi/ctfonts.cxx

Modified: openoffice/trunk/main/vcl/aqua/source/gdi/ctfonts.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/vcl/aqua/source/gdi/ctfonts.cxx?rev=1592692&r1=1592691&r2=1592692&view=diff
==============================================================================
--- openoffice/trunk/main/vcl/aqua/source/gdi/ctfonts.cxx (original)
+++ openoffice/trunk/main/vcl/aqua/source/gdi/ctfonts.cxx Tue May  6 09:07:50 2014
@@ -176,10 +176,13 @@ void CTTextStyle::GetFontMetric( float f
 	CTFontRef aCTFontRef = (CTFontRef)CFDictionaryGetValue( mpStyleDict, kCTFontAttributeName );
 
 	const double fPixelSize = (mfFontScale * fDPIY);
-	rMetric.mnAscent       = lrint( CTFontGetAscent( aCTFontRef ) * fPixelSize);
+	const CGFloat fAscent = CTFontGetAscent( aCTFontRef );
+	const CGFloat fCapHeight = CTFontGetCapHeight( aCTFontRef );
+	rMetric.mnAscent       = lrint( fAscent * fPixelSize);
 	rMetric.mnDescent      = lrint( CTFontGetDescent( aCTFontRef ) * fPixelSize);
-	rMetric.mnIntLeading   = lrint( CTFontGetLeading( aCTFontRef ) * fPixelSize);
-	rMetric.mnExtLeading   = 0;
+	rMetric.mnExtLeading   = lrint( CTFontGetLeading( aCTFontRef ) * fPixelSize);
+	rMetric.mnIntLeading   = lrint( (fAscent - fCapHeight) * fPixelSize);
+
 	// since ImplFontMetricData::mnWidth is only used for stretching/squeezing fonts
 	// setting this width to the pixel height of the fontsize is good enough
 	// it also makes the calculation of the stretch factor simple