diff options
Diffstat (limited to 'sw/source/core/layout/sectfrm.cxx')
-rw-r--r-- | sw/source/core/layout/sectfrm.cxx | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/sw/source/core/layout/sectfrm.cxx b/sw/source/core/layout/sectfrm.cxx index 217f44126e81..635d7fb92c17 100644 --- a/sw/source/core/layout/sectfrm.cxx +++ b/sw/source/core/layout/sectfrm.cxx @@ -705,7 +705,7 @@ void SwSectionFrame::MoveContentAndDelete( SwSectionFrame* pDel, bool bSave ) } } -void SwSectionFrame::MakeAll(vcl::RenderContext* /*pRenderContext*/) +void SwSectionFrame::MakeAll(vcl::RenderContext* pRenderContext) { if ( IsJoinLocked() || IsColLocked() || StackHack::IsLocked() || StackHack::Count() > 50 ) return; @@ -776,6 +776,19 @@ void SwSectionFrame::MakeAll(vcl::RenderContext* /*pRenderContext*/) (void)rCol; #endif SwLayoutFrame::MakeAll(getRootFrame()->GetCurrShell()->GetOut()); + + if (IsInTab()) + { + // In case the section is in a table, then calculate the lower right + // now. Just setting the valid size flag of the lower to false may not + // be enough, as lcl_RecalcRow() can call + // SwFrame::ValidateThisAndAllLowers(), and then we don't attempt + // calculating the proper position of the lower. + SwFrame* pLower = Lower(); + if (pLower && !pLower->GetValidPosFlag()) + pLower->Calc(pRenderContext); + } + UnlockJoin(); if( m_pSection && IsSuperfluous() ) DelEmpty( false ); |