summaryrefslogtreecommitdiff
path: root/vcl/win/source/gdi/winlayout.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/win/source/gdi/winlayout.cxx')
-rw-r--r--vcl/win/source/gdi/winlayout.cxx14
1 files changed, 10 insertions, 4 deletions
diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx
index 607426fe2d99..7c573666edd8 100644
--- a/vcl/win/source/gdi/winlayout.cxx
+++ b/vcl/win/source/gdi/winlayout.cxx
@@ -566,7 +566,7 @@ void WinLayout::DrawText(SalGraphics& rGraphics) const
if (!mbUseOpenGL)
{
// no OpenGL, just classic rendering
- DrawTextImpl(hDC);
+ DrawTextImpl(hDC, NULL);
}
else if (CacheGlyphs(rGraphics) &&
DrawCachedGlyphs(rGraphics))
@@ -623,7 +623,7 @@ void WinLayout::DrawText(SalGraphics& rGraphics) const
SetTextAlign(aDC.getCompatibleHDC(), nTextAlign);
// the actual drawing
- DrawTextImpl(aDC.getCompatibleHDC());
+ DrawTextImpl(aDC.getCompatibleHDC(), &aRect);
COLORREF color = GetTextColor(hDC);
SalColor salColor = MAKE_SALCOLOR(GetRValue(color), GetGValue(color), GetBValue(color));
@@ -1764,7 +1764,7 @@ void UniscribeLayout::Simplify( bool /*bIsBase*/ )
}
}
-void UniscribeLayout::DrawTextImpl(HDC hDC) const
+void UniscribeLayout::DrawTextImpl(HDC hDC, const Rectangle* /* pRectToErase */) const
{
HFONT hOrigFont = DisableFontScaling();
@@ -2770,8 +2770,14 @@ void GraphiteWinLayout::AdjustLayout(ImplLayoutArgs& rArgs)
maImpl.AdjustLayout(rArgs);
}
-void GraphiteWinLayout::DrawTextImpl(HDC hDC) const
+void GraphiteWinLayout::DrawTextImpl(HDC hDC, const Rectangle* pRectToErase) const
{
+ if (pRectToErase)
+ {
+ RECT aRect = { pRectToErase->Left(), pRectToErase->Top(), pRectToErase->Left()+pRectToErase->GetWidth(), pRectToErase->Top()+pRectToErase->GetHeight() };
+ FillRect(hDC, &aRect, static_cast<HBRUSH>(GetStockObject(WHITE_BRUSH)));
+ }
+
HFONT hOrigFont = DisableFontScaling();
maImpl.DrawBase() = WinLayout::maDrawBase;
maImpl.DrawOffset() = WinLayout::maDrawOffset;