[Libreoffice-commits] core.git: Branch 'libreoffice-5-1' - vcl/win

Tor Lillqvist tml at collabora.com
Fri Jan 8 05:09:50 PST 2016


 vcl/win/source/gdi/winlayout.cxx |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

New commits:
commit bddfc8b684ec5b730ea3791a534259516fd46629
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Dec 21 18:36:07 2015 +0200

    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
    Signed-off-by: Michael Meeks <michael.meeks at collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/21203
    Tested-by: Jenkins <ci at libreoffice.org>

diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx
index cef4f8a..ecc7623 100644
--- a/vcl/win/source/gdi/winlayout.cxx
+++ b/vcl/win/source/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;


More information about the Libreoffice-commits mailing list