]> git.saurik.com Git - wxWidgets.git/commitdiff
use the same font matching fallbacks for all layout operations
authorStefan Csomor <csomor@advancedconcepts.ch>
Fri, 14 Mar 2008 10:34:25 +0000 (10:34 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Fri, 14 Mar 2008 10:34:25 +0000 (10:34 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52484 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/mac/carbon/graphics.cpp

index 5b7e4d2feaf90efb2bb5afea6b48bd9432317231..0b6b699b4abffbd0fe39aa89d12088a390e7e1ba 100644 (file)
@@ -2074,6 +2074,9 @@ void wxMacCoreGraphicsContext::GetTextExtent( const wxString &str, wxDouble *wid
         
         wxASSERT_MSG( status == noErr , wxT("couldn't create the layout of the text") );
         
+        status = ::ATSUSetTransientFontMatching( atsuLayout , true );
+        wxASSERT_MSG( status == noErr , wxT("couldn't setup transient font matching") );
+
         ATSUTextMeasurement textBefore, textAfter;
         ATSUTextMeasurement textAscent, textDescent;
         
@@ -2131,14 +2134,20 @@ void wxMacCoreGraphicsContext::GetPartialTextExtents(const wxString& text, wxArr
 #endif
 #if wxMAC_USE_ATSU_TEXT
     {
+        OSStatus status = noErr;
         ATSUTextLayout atsuLayout;
         wxMacUniCharBuffer unibuf( text );
         UniCharCount chars = unibuf.GetChars();
         
         ATSUStyle style = (((wxMacCoreGraphicsFontData*)m_font.GetRefData())->GetATSUStyle());
-        ::ATSUCreateTextLayoutWithTextPtr( unibuf.GetBuffer() , 0 , chars , chars , 1 ,
+        status = ::ATSUCreateTextLayoutWithTextPtr( unibuf.GetBuffer() , 0 , chars , chars , 1 ,
                                           &chars , &style , &atsuLayout );
+                
+        wxASSERT_MSG( status == noErr , wxT("couldn't create the layout of the text") );
         
+        status = ::ATSUSetTransientFontMatching( atsuLayout , true );
+        wxASSERT_MSG( status == noErr , wxT("couldn't setup transient font matching") );
+
         for ( int pos = 0; pos < (int)chars; pos ++ )
         {
             unsigned long actualNumberOfBounds = 0;