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();

Reply via email to