summaryrefslogtreecommitdiff
path: root/svx/source/svdraw/svdotxat.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/svdraw/svdotxat.cxx')
-rw-r--r--svx/source/svdraw/svdotxat.cxx20
1 files changed, 18 insertions, 2 deletions
diff --git a/svx/source/svdraw/svdotxat.cxx b/svx/source/svdraw/svdotxat.cxx
index 20325165a172..b25ead77cc87 100644
--- a/svx/source/svdraw/svdotxat.cxx
+++ b/svx/source/svdraw/svdotxat.cxx
@@ -287,8 +287,24 @@ bool SdrTextObj::AdjustTextFrameWidthAndHeight()
if (dynamic_cast<const SdrCaptionObj *>(this) != nullptr) { // this is a hack
static_cast<SdrCaptionObj*>(this)->ImpRecalcTail();
}
- SetChanged();
- BroadcastObjectChange();
+
+ // to not slow down EditView visualization on Overlay (see
+ // TextEditOverlayObject) it is necessary to suppress the
+ // Invalidates for the deep repaint when the size of the
+ // TextFrame changed (AdjustTextFrameWidthAndHeight returned
+ // true). The ObjectChanges are valid, invalidate will be
+ // done on EndTextEdit anyways
+ const bool bSuppressChangeWhenEditOnOverlay(
+ IsInEditMode() &&
+ GetTextEditOutliner() &&
+ GetTextEditOutliner()->hasEditViewCallbacks());
+
+ if (!bSuppressChangeWhenEditOnOverlay)
+ {
+ SetChanged();
+ BroadcastObjectChange();
+ }
+
SendUserCall(SdrUserCallType::Resize,aBoundRect0);
}
return bRet;