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/+/106938
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/sc/source/core/data/postit.cxx b/sc/source/core/data/postit.cxx
index 92221fe..d0ac658f 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 6f97960..315e57e 100644
--- a/svx/source/svdraw/svdotxat.cxx
+++ b/svx/source/svdraw/svdotxat.cxx
@@ -263,8 +263,12 @@ bool SdrTextObj::AdjustTextFrameWidthAndHeight()
        if (dynamic_cast<const SdrRectObj *>(this) != nullptr) { // this is a hack
            static_cast<SdrRectObj*>(this)->SetXPolyDirty();
        }
        if (dynamic_cast<const SdrCaptionObj *>(this) != nullptr) { // this is a hack
            static_cast<SdrCaptionObj*>(this)->ImpRecalcTail();
        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();