Resolves: tdf#138549 use GetSpecialTextBoxShadow to identify ScPostIt

instead of a 'special' name which causes undo-related causes side effects

Change-Id: Id36b0b5360ddde3469721a7c837fe3942af08209
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106924
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
(cherry picked from commit 9c94bae963ef5019f6ca0394d076b1288969aa53)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107024
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
diff --git a/sc/source/core/data/postit.cxx b/sc/source/core/data/postit.cxx
index 7bb1b96..bafd2e9 100644
--- a/sc/source/core/data/postit.cxx
+++ b/sc/source/core/data/postit.cxx
@@ -382,17 +382,6 @@ void ScCaptionCreator::CreateCaption( bool bShown, bool bTailFront )
            *mrDoc.GetDrawLayer(), // TTTT should ret a ref?
            aTextRect,
            aTailPos));

    // tdf#114956 a way to recognize that this SdrCaption is for a ScPostit in
    // SdrTextObj::AdjustTextFrameWidthAndHeight
    SdrModel& rModel = mxCaption->getSdrModelFromSdrObject();
    const bool bUndoEnabled = rModel.IsUndoEnabled();
    if (bUndoEnabled)
        rModel.EnableUndo(false);
    mxCaption->SetName("ScPostIt");
    if (bUndoEnabled)
        rModel.EnableUndo(true);

    // basic caption settings
    ScCaptionUtil::SetBasicCaptionSettings( *mxCaption, bShown );
}
diff --git a/svx/source/svdraw/svdotxat.cxx b/svx/source/svdraw/svdotxat.cxx
index 4b96bb0..5ba5ec6 100644
--- a/svx/source/svdraw/svdotxat.cxx
+++ b/svx/source/svdraw/svdotxat.cxx
@@ -263,8 +263,12 @@ bool SdrTextObj::AdjustTextFrameWidthAndHeight()
        if (auto pRectObj = dynamic_cast<SdrRectObj *>(this)) { // this is a hack
            pRectObj->SetXPolyDirty();
        }
        bool bScPostIt = false;
        if (auto pCaptionObj = dynamic_cast<SdrCaptionObj *>(this)) { // this is a hack
            pCaptionObj->ImpRecalcTail();
            // tdf#114956, tdf#138549 use GetSpecialTextBoxShadow to recognize
            // that this SdrCaption is for a ScPostit
            bScPostIt = pCaptionObj->GetSpecialTextBoxShadow();
        }

        // to not slow down EditView visualization on Overlay (see
@@ -278,8 +282,7 @@ bool SdrTextObj::AdjustTextFrameWidthAndHeight()
            GetTextEditOutliner() &&
            GetTextEditOutliner()->hasEditViewCallbacks());

        // tdf#114956 always broadcast change for ScPostIts
        if (!bSuppressChangeWhenEditOnOverlay || GetName() == "ScPostIt")
        if (!bSuppressChangeWhenEditOnOverlay || bScPostIt)
        {
            SetChanged();
            BroadcastObjectChange();