[Libreoffice-commits] core.git: include/vcl sd/source sw/source vcl/source

Miklos Vajna vmiklos at collabora.co.uk
Wed Jan 4 08:16:13 UTC 2017


 include/vcl/pdfextoutdevdata.hxx                |    2 +-
 sd/source/ui/unoidl/unomodel.cxx                |    2 +-
 sw/source/core/text/EnhancedPDFExportHelper.cxx |    7 +++++--
 vcl/source/gdi/pdfextoutdevdata.cxx             |    4 ++--
 4 files changed, 9 insertions(+), 6 deletions(-)

New commits:
commit 0e71075bb7379af318482bb3abbb630c58db9ec9
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue Jan 3 15:41:58 2017 +0100

    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 at collabora.co.uk>
    Tested-by: Jenkins <ci at libreoffice.org>

diff --git a/include/vcl/pdfextoutdevdata.hxx b/include/vcl/pdfextoutdevdata.hxx
index 1a0c941..e3a05d9 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 cb269d6..073e70d 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 b9d2181..85cc511 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 f85c981..0649b45 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++;
 }
 


More information about the Libreoffice-commits mailing list