[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.0' - desktop/source

Miklos Vajna vmiklos at collabora.co.uk
Tue Mar 1 09:58:47 UTC 2016


 desktop/source/lib/init.cxx |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

New commits:
commit a57b2fd453c53d6fc1075321cf3b7d4284781e68
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue Mar 1 10:50:29 2016 +0100

    ccu#1568 desktop: disable alpha buffer for Calc
    
    As far as I see, the alpha buffer is used for Writer and Impress only,
    while it causes problems for Calc hyperlink rendering, so conditionally
    disable it.
    
    Change-Id: I4debe6d5c03c4765959158b97bc6da9b3cc817c8

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 520b8ad..8371686 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -1006,7 +1006,12 @@ void doc_paintTile (LibreOfficeKitDocument* pThis,
     // Allocate a separate buffer for the alpha device.
     std::vector<sal_uInt8> aAlpha(nCanvasWidth * nCanvasHeight);
     memset(aAlpha.data(), 0, nCanvasWidth * nCanvasHeight);
-    boost::shared_array<sal_uInt8> aAlphaBuffer(aAlpha.data(), NoDelete<sal_uInt8>());
+    boost::shared_array<sal_uInt8> aAlphaBuffer;
+
+    // No alpha buffer for Calc: it would result in misrendered hyperlinks with
+    // pre-cairo headless codepath.
+    if (doc_getDocumentType(pThis) != LOK_DOCTYPE_SPREADSHEET)
+        aAlphaBuffer.reset(aAlpha.data(), NoDelete<sal_uInt8>());
 
     pDevice->SetOutputSizePixelScaleOffsetAndBuffer(
                 Size(nCanvasWidth, nCanvasHeight), Fraction(1.0), Point(),


More information about the Libreoffice-commits mailing list