diff options
author | Tor Lillqvist <tml@collabora.com> | 2015-12-21 18:36:07 +0200 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2015-12-30 10:28:08 +0200 |
commit | 7368803e540d530a157d3c4234ca5428a44cbc4a (patch) | |
tree | 00e38fc12f7f7ec62849c32b040a1c3a40dababf /vcl | |
parent | 9b7cd8f0ffe8bfe77ddd30fa4021a9a60b7794c1 (diff) |
tdf#96420: Avoid drawing ugly black boxes on top of replacement glyphs
When UniscribeLayout::DrawText() was used from MultiSalLayout to draw
the base layout level after having drawn fallback glyphs, it
mis-rendered the runs that contained the missing glyphs. Avoid this by
handing the pRectToErase parameter also here.
Change-Id: Ib40aa9e9e60d72db1cdd331ba03ae8230aadbba8
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/win/gdi/winlayout.cxx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/vcl/win/gdi/winlayout.cxx b/vcl/win/gdi/winlayout.cxx index f46ae47e0d61..75d3467803ef 100644 --- a/vcl/win/gdi/winlayout.cxx +++ b/vcl/win/gdi/winlayout.cxx @@ -1777,10 +1777,16 @@ void UniscribeLayout::Simplify( bool /*bIsBase*/ ) } bool UniscribeLayout::DrawTextImpl(HDC hDC, - const Rectangle* /* pRectToErase */, + const Rectangle* pRectToErase, Point* /* pPos */, int* /* pGetNextGlypInfo */) 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(); int nBaseClusterOffset = 0; |