diff options
-rw-r--r-- | vcl/source/gdi/outdev3.cxx | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx index 8304746141e9..6548d0cf4232 100644 --- a/vcl/source/gdi/outdev3.cxx +++ b/vcl/source/gdi/outdev3.cxx @@ -237,6 +237,24 @@ void OutputDevice::ImplUpdateAllFontData( bool bNewFontLists ) { ImplSVData* pSVData = ImplGetSVData(); + // clear global font lists to have them updated + pSVData->maGDIData.mpScreenFontCache->Invalidate(); + if ( bNewFontLists ) + { + pSVData->maGDIData.mpScreenFontList->Clear(); + Window * pFrame = pSVData->maWinData.mpFirstFrame; + if ( pFrame ) + { + if ( pFrame->ImplGetGraphics() ) + { + // Stupid typecast here and somewhere ((OutputDevice*)&aVDev)->, because bug in .NET2002 compiler + OutputDevice *pDevice = (OutputDevice*)pFrame; + pDevice->mpGraphics->ClearDevFontCache(); + pDevice->mpGraphics->GetDevFontList(pFrame->mpWindowImpl->mpFrameData->mpFontList); + } + } + } + // update all windows Window* pFrame = pSVData->maWinData.mpFirstFrame; while ( pFrame ) @@ -268,24 +286,6 @@ void OutputDevice::ImplUpdateAllFontData( bool bNewFontLists ) pPrinter->ImplUpdateFontData( bNewFontLists ); pPrinter = pPrinter->mpNext; } - - // clear global font lists to have them updated - pSVData->maGDIData.mpScreenFontCache->Invalidate(); - if ( bNewFontLists ) - { - pSVData->maGDIData.mpScreenFontList->Clear(); - pFrame = pSVData->maWinData.mpFirstFrame; - if ( pFrame ) - { - if ( pFrame->ImplGetGraphics() ) - { - // Stupid typecast here and somewhere ((OutputDevice*)&aVDev)->, because bug in .NET2002 compiler - OutputDevice *pDevice = (OutputDevice*)pFrame; - pDevice->mpGraphics->ClearDevFontCache(); - pDevice->mpGraphics->GetDevFontList(pFrame->mpWindowImpl->mpFrameData->mpFontList); - } - } - } } // TODO: remove this method when the CWS-gfbfcfg dust has settled |