diff options
author | Rüdiger Timm <rt@openoffice.org> | 2003-04-24 09:27:20 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2003-04-24 09:27:20 +0000 |
commit | 356558184e33d38b2de9f750f1d2d73d93cbfd4a (patch) | |
tree | f10e5722217d93967108c0272afc2117a7b19d5c /vcl | |
parent | 0d62eb4937fe8be39513e72bbdba65c0564b7da1 (diff) |
INTEGRATION: CWS beta2vcl (1.144.4); FILE MERGED
2003/04/16 18:02:22 hdu 1.144.4.1: #108554# fix handling of runs for glyph fallback
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/gdi/outdev3.cxx | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx index dc2069d6ccee..22007d06e93d 100644 --- a/vcl/source/gdi/outdev3.cxx +++ b/vcl/source/gdi/outdev3.cxx @@ -2,9 +2,9 @@ * * $RCSfile: outdev3.cxx,v $ * - * $Revision: 1.145 $ + * $Revision: 1.146 $ * - * last change: $Author: rt $ $Date: 2003-04-17 15:17:53 $ + * last change: $Author: rt $ $Date: 2003-04-24 10:27:20 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -2906,7 +2906,7 @@ void OutputDevice::ImplInitFont() // decide if antialiasing is appropriate bool bNonAntialiased = (GetAntialiasing() & ANTIALIASING_DISABLE_TEXT) != 0; const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings(); - bNonAntialiased |= (rStyleSettings.GetDisplayOptions() & DISPLAY_OPTION_AA_DISABLE) != 0; + bNonAntialiased |= ((rStyleSettings.GetDisplayOptions() & DISPLAY_OPTION_AA_DISABLE) != 0); bNonAntialiased |= (rStyleSettings.GetAntialiasingMinPixelHeight() > mpFontEntry->maFontSelData.mnHeight); mpFontEntry->maFontSelData.mbNonAntialiased = (BOOL)bNonAntialiased; } @@ -5861,15 +5861,21 @@ SalLayout* OutputDevice::ImplLayout( const String& rOrigStr, pSalLayout = NULL; } + ImplLayoutArgs aMultiArgs = aLayoutArgs; +#ifdef WNT + // TODO: reenable multi glyph fallback on Win32 which got disabled for Beta2 + if( (aLayoutArgs.mnFlags & SAL_LAYOUT_COMPLEX_DISABLED) +#else + if( 1 +#endif // do glyph fallback if needed // #105768# avoid fallback for very small font sizes - if( mpFontEntry && (mpFontEntry->maFontSelData.mnHeight >= 6) - && (pSalLayout && aLayoutArgs.PrepareFallback()) ) + && mpFontEntry && (mpFontEntry->maFontSelData.mnHeight >= 6) + && (pSalLayout && aMultiArgs.PrepareFallback()) ) { // prepare multi level glyph fallback MultiSalLayout* pMultiSalLayout = NULL; - ImplLayoutArgs aMultiArgs = aLayoutArgs; - aLayoutArgs.mnFlags |= SAL_LAYOUT_FOR_FALLBACK; + aMultiArgs.mnFlags |= SAL_LAYOUT_FOR_FALLBACK; ImplFontSelectData aFontSelData = mpFontEntry->maFontSelData; Size aFontSize( mpFontEntry->maFontSelData.mnWidth, mpFontEntry->maFontSelData.mnHeight ); @@ -5895,11 +5901,11 @@ SalLayout* OutputDevice::ImplLayout( const String& rOrigStr, pFallbackFont->mnSetFontFlags = mpGraphics->SetFont( &aFontSelData, nLevel ); // create and add fallback layout to multilayout - aLayoutArgs.ResetPos(); - SalLayout* pFallback = mpGraphics->GetTextLayout( aLayoutArgs, nLevel ); + aMultiArgs.ResetPos(); + SalLayout* pFallback = mpGraphics->GetTextLayout( aMultiArgs, nLevel ); if( pFallback ) { - if( pFallback->LayoutText( aLayoutArgs ) ) + if( pFallback->LayoutText( aMultiArgs ) ) { if( !pMultiSalLayout ) pMultiSalLayout = new MultiSalLayout( *pSalLayout ); @@ -5912,12 +5918,14 @@ SalLayout* OutputDevice::ImplLayout( const String& rOrigStr, mpFontCache->Release( pFallbackFont ); // break when this fallback was sufficient - if( !aLayoutArgs.PrepareFallback() ) + if( !aMultiArgs.PrepareFallback() ) break; } if( pMultiSalLayout ) { + aMultiArgs = aLayoutArgs; + aMultiArgs.PrepareFallback(); pMultiSalLayout->LayoutText( aMultiArgs ); pSalLayout = pMultiSalLayout; } |