Kaydet (Commit) 39dd42b5 authored tarafından Tamás Zolnai's avatar Tamás Zolnai

lok: Tile not invalidated with certain changes

Calling FillRects caused this issue, which updates text area, so
the invalidation, runing after that call, won't now where was the old text.
We call invalidation here on the whole frame not only on the rects where
the actual text is.

Change-Id: I23db4b9579aa5710540b5d241506726630219b02
Reviewed-on: https://gerrit.libreoffice.org/47848Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarTamás Zolnai <tamas.zolnai@collabora.com>
üst facfc295
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment