diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2024-02-28 09:41:06 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2024-02-28 11:36:41 +0100 |
commit | c98ff922831f56253af2a050b8e07cfc89b7a387 (patch) | |
tree | 649d8e12004d2cd62f22c034abf19abe1fe14220 /writerfilter/source/rtftok/rtfdispatchsymbol.cxx | |
parent | 458f4c9b489d92947c4122e7c450f65f90aa4efe (diff) |
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 <vmiklos@collabora.com>
Tested-by: Jenkins
Diffstat (limited to 'writerfilter/source/rtftok/rtfdispatchsymbol.cxx')
-rw-r--r-- | writerfilter/source/rtftok/rtfdispatchsymbol.cxx | 13 |
1 files changed, 7 insertions, 6 deletions
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(); |