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