sd/source/ui/unoidl/unopage.cxx |   50 ++++++++++++++++++++++------------------
 1 file changed, 28 insertions(+), 22 deletions(-)

New commits:
commit 6d02c3d406edea1d3b3fc2b63ad97a1b7fe3b7db
Author:     Mohit Marathe <mohit.mara...@collabora.com>
AuthorDate: Fri Sep 12 21:19:17 2025 +0530
Commit:     Michael Stahl <michael.st...@collabora.com>
CommitDate: Fri Sep 26 11:17:02 2025 +0200

    sd: don't force all the master pages to have same size while importing
    
    This will allow supporting multiple slide sizes in Impress.
    
    Change-Id: Ia41f5a672623dabb486ce8d9fa9b8fc5eb0c51ec
    Signed-off-by: Mohit Marathe <mohit.mara...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191523
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Michael Stahl <michael.st...@collabora.com>

diff --git a/sd/source/ui/unoidl/unopage.cxx b/sd/source/ui/unoidl/unopage.cxx
index ba8e64f986c9..a99c386a435e 100644
--- a/sd/source/ui/unoidl/unopage.cxx
+++ b/sd/source/ui/unoidl/unopage.cxx
@@ -1844,20 +1844,23 @@ void SdGenericDrawPage::SetWidth( sal_Int32 nWidth )
     SdDrawDocument& rDoc(static_cast< SdDrawDocument& 
>(GetPage()->getSdrModelFromSdrPage()));
     const PageKind ePageKind = GetPage()->GetPageKind();
 
-    sal_uInt16 i, nPageCnt = rDoc.GetMasterSdPageCount(ePageKind);
-    for (i = 0; i < nPageCnt; i++)
+    SdPage* pPage = GetPage();
+    if (pPage->TRG_HasMasterPage())
     {
-        SdPage* pPage = rDoc.GetMasterSdPage(i, ePageKind);
-        pPage->SetSize(aSize);
-    }
-
-    nPageCnt = rDoc.GetSdPageCount(ePageKind);
+        SdPage* pMasterPage = 
static_cast<SdPage*>(&pPage->TRG_GetMasterPage());
+        pMasterPage->SetSize(aSize);
 
-    for (i = 0; i < nPageCnt; i++)
-    {
-        SdPage* pPage = rDoc.GetSdPage(i, ePageKind);
-        pPage->SetSize(aSize);
+        sal_uInt32 nPageCnt = rDoc.GetSdPageCount(ePageKind);
+        for (sal_uInt32 i = 0; i < nPageCnt; i++)
+        {
+            pPage = rDoc.GetSdPage(i, ePageKind);
+            if (pPage->TRG_HasMasterPage() &&
+                static_cast<SdPage*>(&pPage->TRG_GetMasterPage()) == 
pMasterPage)
+                pPage->SetSize(aSize);
+        }
     }
+    else
+        pPage->SetSize(aSize);
 
     refreshpage( &rDoc, ePageKind );
 }
@@ -1873,20 +1876,23 @@ void SdGenericDrawPage::SetHeight( sal_Int32 nHeight )
     SdDrawDocument& rDoc(static_cast< SdDrawDocument& 
>(GetPage()->getSdrModelFromSdrPage()));
     const PageKind ePageKind = GetPage()->GetPageKind();
 
-    sal_uInt16 i, nPageCnt = rDoc.GetMasterSdPageCount(ePageKind);
-    for (i = 0; i < nPageCnt; i++)
+    SdPage* pPage = GetPage();
+    if (pPage->TRG_HasMasterPage())
     {
-        SdPage* pPage = rDoc.GetMasterSdPage(i, ePageKind);
-        pPage->SetSize(aSize);
-    }
-
-    nPageCnt = rDoc.GetSdPageCount(ePageKind);
+        SdPage* pMasterPage = 
static_cast<SdPage*>(&pPage->TRG_GetMasterPage());
+        pMasterPage->SetSize(aSize);
 
-    for (i = 0; i < nPageCnt; i++)
-    {
-        SdPage* pPage = rDoc.GetSdPage(i, ePageKind);
-        pPage->SetSize(aSize);
+        sal_uInt32 nPageCnt = rDoc.GetSdPageCount(ePageKind);
+        for (sal_uInt32 i = 0; i < nPageCnt; i++)
+        {
+            pPage = rDoc.GetSdPage(i, ePageKind);
+            if (pPage->TRG_HasMasterPage() &&
+                static_cast<SdPage*>(&pPage->TRG_GetMasterPage()) == 
pMasterPage)
+                pPage->SetSize(aSize);
+        }
     }
+    else
+        pPage->SetSize(aSize);
 
     refreshpage( &rDoc, ePageKind );
 }

Reply via email to