diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2020-03-25 10:28:53 +0100 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2020-03-25 13:41:59 +0100 |
commit | 74ebc6dcbc85ce9f49d7451e08d71a41f794f569 (patch) | |
tree | f0fbcedc2166f1a9cdf1ee0ca6fc64841a2327be /svx | |
parent | d591a682e46ff352f06a61c024ef661dd17f4ea4 (diff) |
SdrGrafObj: don't check the primitive sequence for PDF to get metadata
For a PDF we create a BitmapPrimitive2D only, so it doesn't have
any metadata in the primitive sequence itself, but a call to the
getVectorGraphicData() method will render the PDF in order to
create the BitmapPrimitive2D. This is a problem when we have
multiple pages as we want them to be rendered on demand and not
right away on load.
This change short-circuits the gathering of metadata for PDF to
prevent unnecessary early rendering of PDF pages.
Change-Id: If5c286e88e72c4c0ba5083a98c7db707d207b6cf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91034
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/svdraw/svdograf.cxx | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx index a924a9694a6e..0d298e27bd30 100644 --- a/svx/source/svdraw/svdograf.cxx +++ b/svx/source/svdraw/svdograf.cxx @@ -138,6 +138,12 @@ void SdrGrafObj::onGraphicChanged() if (!rVectorGraphicDataPtr.get()) return; + // Skip for PDF as it is only a bitmap primitive in a sequence and + // doesn't contain metadata. However getting the primitive sequence + // will also trigger a premature rendering of the PDF. + if (rVectorGraphicDataPtr->getVectorGraphicDataType() == VectorGraphicDataType::Pdf) + return; + const drawinglayer::primitive2d::Primitive2DContainer aSequence(rVectorGraphicDataPtr->getPrimitive2DSequence()); if (aSequence.empty()) |