summaryrefslogtreecommitdiff
path: root/sw/source/core/layout/wsfrm.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core/layout/wsfrm.cxx')
-rw-r--r--sw/source/core/layout/wsfrm.cxx18
1 files changed, 18 insertions, 0 deletions
diff --git a/sw/source/core/layout/wsfrm.cxx b/sw/source/core/layout/wsfrm.cxx
index aa2cd56249f6..9cebf22c8229 100644
--- a/sw/source/core/layout/wsfrm.cxx
+++ b/sw/source/core/layout/wsfrm.cxx
@@ -4349,6 +4349,24 @@ static void UnHideRedlines(SwRootFrame & rLayout,
rTextNode.NumRuleChgd();
}
}
+ else if (rNode.IsTableNode() && rLayout.IsHideRedlines())
+ {
+ SwPosition const tmp(rNode);
+ SwRangeRedline const*const pRedline(
+ rLayout.GetFormat()->GetDoc()->getIDocumentRedlineAccess().GetRedline(tmp, nullptr));
+ // pathology: redline that starts on a TableNode; cannot
+ // be created in UI but by import filters...
+ if (pRedline
+ && pRedline->GetType() == nsRedlineType_t::REDLINE_DELETE
+ && &pRedline->Start()->nNode.GetNode() == &rNode)
+ {
+ for (sal_uLong j = rNode.GetIndex(); j <= rNode.EndOfSectionIndex(); ++j)
+ {
+ rNode.GetNodes()[j]->SetRedlineMergeFlag(SwNode::Merge::Hidden);
+ }
+ rNode.GetTableNode()->DelFrames(&rLayout);
+ }
+ }
if (!rNode.IsCreateFrameWhenHidingRedlines())
{
if (rLayout.IsHideRedlines())