summaryrefslogtreecommitdiff
path: root/sw/source/core/doc/docredln.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core/doc/docredln.cxx')
-rw-r--r--sw/source/core/doc/docredln.cxx14
1 files changed, 14 insertions, 0 deletions
diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx
index e2c061f004ac..d073d21f5cb5 100644
--- a/sw/source/core/doc/docredln.cxx
+++ b/sw/source/core/doc/docredln.cxx
@@ -393,6 +393,20 @@ void SwRedlineTable::LOKRedlineNotification(RedlineNotification nType, SwRangeRe
aRedline.put("textRange", sRects.getStr());
lcl_LOKInvalidateStartEndFrames(aCursor);
+
+ // When this notify method is called text invalidation is not done yet
+ // Calling FillRects updates the text area so invalidation will not run on the correct rects
+ // So we need to do an own invalidation here. It invalidates text frames continging the redlining
+ SwDoc* pDoc = pRedline->GetDoc();
+ SwViewShell* pSh;
+ if( pDoc && !pDoc->IsInDtor() &&
+ nullptr != ( pSh = pDoc->getIDocumentLayoutAccess().GetCurrentViewShell()) )
+ {
+ for(SwNodeIndex nIdx = pStartPos->nNode; nIdx <= pEndPos->nNode; ++nIdx)
+ {
+ pSh->InvalidateWindows( nIdx.GetNode().GetContentNode()->FindLayoutRect() );
+ }
+ }
}
boost::property_tree::ptree aTree;