summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2017-01-03 15:41:58 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-01-04 08:15:51 +0000
commit0e71075bb7379af318482bb3abbb630c58db9ec9 (patch)
tree343cf80d2233c726bab0766ed7951ade175aebab
parentd3c1a84d4c0bc24defcc497587fa6f258aa8ebdd (diff)
Related: tdf#104841 sw PDF export: handle linked videos on non-first pages
Be explicit about the page number, this way a video on the second page doesn't end up as an annotation for the first page. (In the Impress case each slide is exported separately, so there this wasn't a problem.) Change-Id: I83ba9cb4a3b2a6734bd88a138654e391199651c6 Reviewed-on: https://gerrit.libreoffice.org/32696 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
-rw-r--r--include/vcl/pdfextoutdevdata.hxx2
-rw-r--r--sd/source/ui/unoidl/unomodel.cxx2
-rw-r--r--sw/source/core/text/EnhancedPDFExportHelper.cxx7
-rw-r--r--vcl/source/gdi/pdfextoutdevdata.cxx4
4 files changed, 9 insertions, 6 deletions
diff --git a/include/vcl/pdfextoutdevdata.hxx b/include/vcl/pdfextoutdevdata.hxx
index 1a0c941eaef7..e3a05d9afa61 100644
--- a/include/vcl/pdfextoutdevdata.hxx
+++ b/include/vcl/pdfextoutdevdata.hxx
@@ -264,7 +264,7 @@ public:
sal_Int32 CreateLink( const Rectangle& rRect, sal_Int32 nPageNr = -1 );
/// Create a Screen annotation.
- sal_Int32 CreateScreen(const Rectangle& rRect);
+ sal_Int32 CreateScreen(const Rectangle& rRect, sal_Int32 nPageNr);
/** Set the destination for a link
<p>will change a URL type link to a dest link if necessary</p>
diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx
index cb269d6e6758..073e70d8deaa 100644
--- a/sd/source/ui/unoidl/unomodel.cxx
+++ b/sd/source/ui/unoidl/unomodel.cxx
@@ -1659,7 +1659,7 @@ void ImplPDFExportShapeInteraction( const uno::Reference< drawing::XShape >& xSh
xShapePropSet->getPropertyValue("MediaURL") >>= aMediaURL;
if (!aMediaURL.isEmpty())
{
- sal_Int32 nScreenId = rPDFExtOutDevData.CreateScreen(aLinkRect);
+ sal_Int32 nScreenId = rPDFExtOutDevData.CreateScreen(aLinkRect, rPDFExtOutDevData.GetCurrentPageNumber());
rPDFExtOutDevData.SetScreenURL(nScreenId, aMediaURL);
}
}
diff --git a/sw/source/core/text/EnhancedPDFExportHelper.cxx b/sw/source/core/text/EnhancedPDFExportHelper.cxx
index b9d218195d6f..85cc511f7741 100644
--- a/sw/source/core/text/EnhancedPDFExportHelper.cxx
+++ b/sw/source/core/text/EnhancedPDFExportHelper.cxx
@@ -1831,8 +1831,11 @@ void SwEnhancedPDFExportHelper::EnhancedPDFExport()
{
const SwPageFrame* pCurrPage = mrSh.GetLayout()->GetPageAtPos(aSnapRect.Center());
Rectangle aPDFRect(SwRectToPDFRect(pCurrPage, aSnapRect.SVRect()));
- sal_Int32 nScreenId = pPDFExtOutDevData->CreateScreen(aPDFRect);
- pPDFExtOutDevData->SetScreenURL(nScreenId, aMediaURL);
+ for (sal_Int32 nScreenPageNum : aScreenPageNums)
+ {
+ sal_Int32 nScreenId = pPDFExtOutDevData->CreateScreen(aPDFRect, nScreenPageNum);
+ pPDFExtOutDevData->SetScreenURL(nScreenId, aMediaURL);
+ }
}
}
}
diff --git a/vcl/source/gdi/pdfextoutdevdata.cxx b/vcl/source/gdi/pdfextoutdevdata.cxx
index f85c981010a1..0649b450bde5 100644
--- a/vcl/source/gdi/pdfextoutdevdata.cxx
+++ b/vcl/source/gdi/pdfextoutdevdata.cxx
@@ -695,12 +695,12 @@ sal_Int32 PDFExtOutDevData::CreateLink( const Rectangle& rRect, sal_Int32 nPageN
return mpGlobalSyncData->mCurId++;
}
-sal_Int32 PDFExtOutDevData::CreateScreen(const Rectangle& rRect)
+sal_Int32 PDFExtOutDevData::CreateScreen(const Rectangle& rRect, sal_Int32 nPageNr)
{
mpGlobalSyncData->mActions.push_back(PDFExtOutDevDataSync::CreateScreen);
mpGlobalSyncData->mParaRects.push_back(rRect);
mpGlobalSyncData->mParaMapModes.push_back(mrOutDev.GetMapMode());
- mpGlobalSyncData->mParaInts.push_back(mnPage);
+ mpGlobalSyncData->mParaInts.push_back(nPageNr);
return mpGlobalSyncData->mCurId++;
}