sd/source/filter/eppt/pptx-epptooxml.cxx |    2 +-
 sd/source/ui/view/sdview3.cxx            |    3 ++-
 svx/source/svdraw/svdundo.cxx            |    6 ++++++
 3 files changed, 9 insertions(+), 2 deletions(-)

New commits:
commit 817e1c5289c353f20c9fdf148684b44b31790cab
Author:     Aron Budea <[email protected]>
AuthorDate: Wed Dec 24 03:25:24 2025 +1100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Wed Dec 24 12:20:23 2025 +0100

    tdf#170102 PP's Title and Content layout exported incorrectly
    
    In tdf#169825's fix I tried to correct the layout type
    corresponding to AUTOLAYOUT_OBJ, originating from PP's obj
    ST_SlideLayoutType to AUTOLAYOUT_TITLE_CONTENT, which had
    unexpected side-effects:
    PPTX->ODP->PPTX conversion of a 'Title, Content' layout added
    placeholder artifact.
    
    Revert that part of the change for now.
    
    Regression from eb338daa90afd569e1b86c058bb88a89fab6a557.
    
    Change-Id: I5ba7ee14c4ae3a3a336b051edee4ca8702b87397
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196169
    Tested-by: Jenkins
    Reviewed-by: Balazs Varga <[email protected]>
    (cherry picked from commit 04e5572c796b63da94aedbd07b2b7bd972422161)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196176
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx 
b/sd/source/filter/eppt/pptx-epptooxml.cxx
index 2f158c9ad32e..1460a957a9b0 100644
--- a/sd/source/filter/eppt/pptx-epptooxml.cxx
+++ b/sd/source/filter/eppt/pptx-epptooxml.cxx
@@ -251,7 +251,7 @@ const PPTXLayoutInfo aLayoutInfo[] =
     { 8, "Title and table", "tbl" },
     { 9, "Title, clipart on left, text on right", "clipArtAndTx" },
     { 10, "Title, text on left, object on right", "txAndObj" },
-    { 11, "Title and object", "obj" },
+    {  1, "Title and object", "obj" },
     { 12, "Title, text on left, two objects on right", "txAndTwoObj" },
     { 13, "Title, object on left, text on right", "objAndTx" },
     { 14, "Title, object on top, text on bottom", "objOverTx" },
commit 0dc03683f9536123327963c170203addb8408930
Author:     Balazs Varga <[email protected]>
AuthorDate: Mon Dec 22 14:59:46 2025 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Wed Dec 24 12:20:10 2025 +0100

    tdf#170027 - sd fix crash when undoing shape drag with Alt pressed
    
    Do not overwrite original shape during drag&drop with Alt,
    when we try to drag&drop the shape on the same shape,
    but create a new shape with new name, same as if we would drag&drop
    the object in general.
    
    Change-Id: I08b2197b3b9755455a165a566eb3452846c0f78e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196097
    Reviewed-by: Mike Kaganski <[email protected]>
    Reviewed-by: Balazs Varga <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 9f980e021ff1a7613003e5c93ec49a37c5ca3420)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196178
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sd/source/ui/view/sdview3.cxx b/sd/source/ui/view/sdview3.cxx
index 27f66c6a2f67..138219c05431 100644
--- a/sd/source/ui/view/sdview3.cxx
+++ b/sd/source/ui/view/sdview3.cxx
@@ -764,7 +764,7 @@ bool View::InsertData( const TransferableDataHelper& 
rDataHelper,
                         SdrPageView*    pPV = nullptr;
                         SdrObject* pPickObj2 = PickObj(rPos, getHitTolLog(), 
pPV);
 
-                        if( ( mnAction & DND_ACTION_MOVE ) && pPickObj2 && 
pObj )
+                        if( ( mnAction & DND_ACTION_MOVE ) && pPickObj2 && 
pObj && pPickObj2->GetName() != pObj->GetName() )
                         {
                             // replace object
                             SdrPage* pWorkPage = GetSdrPageView()->GetPage();
@@ -804,6 +804,7 @@ bool View::InsertData( const TransferableDataHelper& 
rDataHelper,
                             mnAction = DND_ACTION_COPY;
                         }
                         else if( ( mnAction & DND_ACTION_LINK ) && pPickObj2 
&& pObj &&
+                            pPickObj2->GetName() != pObj->GetName() &&
                             dynamic_cast< const SdrGrafObj *>( pPickObj2 ) ==  
nullptr &&
                                 dynamic_cast< const SdrOle2Obj *>( pPickObj2 ) 
==  nullptr )
                         {
diff --git a/svx/source/svdraw/svdundo.cxx b/svx/source/svdraw/svdundo.cxx
index 8c0b2f375e06..cc6de3fe1d5c 100644
--- a/svx/source/svdraw/svdundo.cxx
+++ b/svx/source/svdraw/svdundo.cxx
@@ -703,6 +703,7 @@ void SdrUndoRemoveObj::Undo()
     // position of the target object.
     Point aOwnerAnchorPos(0, 0);
 
+    assert(pObjList); // must never be null
     if (dynamic_cast< const SdrObjGroup* 
>(pObjList->getSdrObjectFromSdrObjList()) != nullptr)
     {
         aOwnerAnchorPos = 
pObjList->getSdrObjectFromSdrObjList()->GetAnchorPos();
@@ -725,6 +726,7 @@ void SdrUndoRemoveObj::Redo()
     {
         ImplUnmarkObject( mxObj.get() );
         E3DModifySceneSnapRectUpdater aUpdater(mxObj.get());
+        assert(pObjList); // must never be null
         pObjList->RemoveObject(mxObj->GetOrdNum());
     }
 
@@ -747,6 +749,7 @@ void SdrUndoInsertObj::Undo()
     {
         ImplUnmarkObject( mxObj.get() );
 
+        assert(pObjList); // must never be null
         rtl::Reference<SdrObject> pChkObj= 
pObjList->RemoveObject(mxObj->GetOrdNum());
         DBG_ASSERT(pChkObj.get()==mxObj.get(),"UndoInsertObj: 
RemoveObjNum!=mxObj");
     }
@@ -762,6 +765,7 @@ void SdrUndoInsertObj::Redo()
         // <InsertObject(..)>. Needed for correct Redo in Writer. (#i45952#)
         Point aAnchorPos( 0, 0 );
 
+        assert(pObjList); // must never be null
         if (dynamic_cast<const 
SdrObjGroup*>(pObjList->getSdrObjectFromSdrObjList()) != nullptr)
         {
             aAnchorPos = mxObj->GetAnchorPos();
@@ -857,12 +861,14 @@ void SdrUndoReplaceObj::Undo()
     DBG_ASSERT(mxNewObj->IsInserted(),"SdrUndoReplaceObj::Undo(): New object 
is not inserted!");
 
     ImplUnmarkObject( mxNewObj.get() );
+    assert(m_pObjList); // must never be null
     m_pObjList->ReplaceObject(mxObj.get(), mxNewObj->GetOrdNum());
 }
 
 void SdrUndoReplaceObj::Redo()
 {
     ImplUnmarkObject( mxObj.get() );
+    assert(m_pObjList); // must never be null
     m_pObjList->ReplaceObject(mxNewObj.get(), mxObj->GetOrdNum());
 
     // Trigger PageChangeCall

Reply via email to