diff options
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/core/doc/docredln.cxx | 14 |
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; |