[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