Kaydet (Commit) c345429b authored tarafından Douglas Mencken's avatar Douglas Mencken Kaydeden (comit) David Tardon

vcl-quartz: fix for fdo#77993 (specific to OS X <10.6)

When using current method, early version of CoreText crashes internally.

Change-Id: Id451d72ac26e4777b61f5d3fec6d4b046c46a749
Reviewed-on: https://gerrit.libreoffice.org/9180Tested-by: 's avatarDavid Tardon <dtardon@redhat.com>
Reviewed-by: 's avatarDavid Tardon <dtardon@redhat.com>
üst 3f72ad15
......@@ -172,6 +172,11 @@ void CTLayout::AdjustLayout( ImplLayoutArgs& rArgs )
// - CoreText handles spaces specially (in particular at the text end)
if( mnTrailingSpaceCount )
{
#if MAC_OS_X_VERSION_MAX_ALLOWED < 1060
// don't recreate line layout here, because this can lead to problems
// (looks like internal issues inside early CoreText versions)
mfTrailingSpaceWidth = CTLineGetTrailingWhitespaceWidth( mpCTLine );
#else
if(rArgs.mpDXArray)
{
int nFullPixelWidth = nPixelWidth;
......@@ -201,8 +206,9 @@ void CTLayout::AdjustLayout( ImplLayoutArgs& rArgs )
aCFText,
mpTextStyle->GetStyleDict() );
mpCTLine = CTLineCreateWithAttributedString( pAttrStr );
CFRelease( aCFText);
CFRelease( pAttrStr );
CFRelease( aCFText );
#endif
// in RTL-layouts trailing spaces are leftmost
// TODO: use BiDi-algorithm to thoroughly check this assumption
......@@ -212,7 +218,11 @@ void CTLayout::AdjustLayout( ImplLayoutArgs& rArgs )
}
}
#if MAC_OS_X_VERSION_MAX_ALLOWED < 1060
CTLineRef pNewCTLine = CTLineCreateJustifiedLine( mpCTLine, 1.0, nPixelWidth - mfTrailingSpaceWidth );
#else
CTLineRef pNewCTLine = CTLineCreateJustifiedLine( mpCTLine, 1.0, nPixelWidth);
#endif
if( !pNewCTLine )
{
// CTLineCreateJustifiedLine can and does fail
......@@ -225,7 +235,11 @@ void CTLayout::AdjustLayout( ImplLayoutArgs& rArgs )
}
CFRelease( mpCTLine );
mpCTLine = pNewCTLine;
#if MAC_OS_X_VERSION_MAX_ALLOWED < 1060
mfCachedWidth = nPixelWidth;
#else
mfCachedWidth = nPixelWidth + mfTrailingSpaceWidth;
#endif
}
// When drawing right aligned text, rounding errors in the position returned by
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment