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 ); }