writerfilter/source/rtftok/rtfdispatchsymbol.cxx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-)
New commits: commit c98ff922831f56253af2a050b8e07cfc89b7a387 Author: Miklos Vajna <vmik...@collabora.com> AuthorDate: Wed Feb 28 09:41:06 2024 +0100 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Wed Feb 28 11:36:41 2024 +0100 Related: tdf#158986 sw floattable, RTF import: use more setNeedPar() See <https://gerrit.libreoffice.org/c/core/+/163844/1#message-ea0bfde78fa24ad83e5c153ecaddbf897a89f547>, this keeps the bug fixed but is a better version, as pointed out by Michael S: > there was a bug where dispatching PAR here caused a deferred page > break to be lost, which was fixed by calling setNeedPar(true) instead. Change-Id: Ibe6e4c14286d40d3066ce9cb7fac9f6847fb81dd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164081 Reviewed-by: Miklos Vajna <vmik...@collabora.com> Tested-by: Jenkins diff --git a/writerfilter/source/rtftok/rtfdispatchsymbol.cxx b/writerfilter/source/rtftok/rtfdispatchsymbol.cxx index 9d10c7a03362..b40fd55dde9b 100644 --- a/writerfilter/source/rtftok/rtfdispatchsymbol.cxx +++ b/writerfilter/source/rtftok/rtfdispatchsymbol.cxx @@ -140,18 +140,19 @@ RTFError RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword) } else { - if (m_bNeedCr) - { // tdf#158586 don't dispatch \par here, it eats deferred page breaks - setNeedPar(true); - } - + bool bPendingFloatingTable = false; RTFValue::Pointer_t pTblpPr = m_aStates.top().getTableRowSprms().find(NS_ooxml::LN_CT_TblPrBase_tblpPr); if (pTblpPr) { // We have a pending floating table, provide an anchor for it still in this // section. - dispatchSymbol(RTFKeyword::PAR); + bPendingFloatingTable = true; + } + + if (m_bNeedCr || bPendingFloatingTable) + { // tdf#158586 don't dispatch \par here, it eats deferred page breaks + setNeedPar(true); } sectBreak();