Description: Table layout split differently after undoing delete row Steps to Reproduce: 1. Open attachment 185440 [details] (bug 153610) 2. Go to page 40 3. Enter the bottom table cell containing 45:45 4. Press delete row button 5. Press Undo -> Broken layout Addition: 6. Press Save 7. reload -> Document fine Actual Results: A) View jumps to total different area B) Scroll the document/ or go go to page 40 -> Notice the tables being split differently Expected Results: Same layout as before undo Reproducible: Always User Profile Reset: No Additional Info: Version: 7.6.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: 37e3455a13ab5741104bf41d05a80e60a4612682 CPU threads: 4; OS: Windows 6.3 Build 9600; UI render: Skia/Raster; VCL: win Locale: nl-NL (nl_NL); UI: en-US Calc: CL threaded
Same in Versie: 4.4.7.2 Build ID: f3153a8b245191196a4b6b9abd1d0da16eead600 Locale: nl_NL also in Versie 4.0.0.3 (Bouw-id: 7545bee9c2a0782548772a21bc84a9dcc583b89) stable in LibreOffice 3.5.0rc3 Build ID: 7e68ba2-a744ebf-1f241b7-c506db1-7d53735
Reproducible in: Version: 7.6.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: 4a0d671706306661c4a5072ce4769dc47bc65f71 CPU threads: 4; OS: Linux 5.15; UI render: default; VCL: gtk3 Locale: en-AU (en_AU.UTF-8); UI: en-US Calc: threaded
(In reply to Telesto from comment #1) > also in > Versie 4.0.0.3 (Bouw-id: 7545bee9c2a0782548772a21bc84a9dcc583b89) No coherent result here. A state in older versions is that there is already an empty space at the bottom of the page with 45:45. However, if I jump to this page immediately after opening, I can see the empty space does not yet exist. It appears after layouting is complete. In Linux 43max I can see states with this empty space, but sometimes even in the same commit it might be layouted without the empty space and staying like that consistently. Yet it can crash upon undoing the row deletion. This crashing continues in 44max. I noticed in linux-64-5.2 repo the oldest has an empty space on the page, jumps after undo, but otherwise retains the layout. The master did not have an empty space initially, jumped and then had the empty space after undo. Apparently this started with commit 905e38c7c6c02ec618b9231545c45debba3a8a44 Author: Michael Stahl <mstahl@redhat.com> Date: Thu Jun 9 15:52:16 2016 +0200 tdf#96089 sw: fix scope of bBreakAfter in InsertCnt_() The problem is that bBreakAfter is passed by reference to SwLayHelper and stored as a reference member there, so it has to live at least as long as pPageMaker. (Unfortunately C++ can't statically check that.) This then somehow caused the number of pages created after initial load to be 812 instead of the correct 396 determined from the layout-cache in the bugdoc, and that then caused Drawing objects to move backward during the following re-pagination, and then SwDrawContact::Changed_() calls SetFlyFrmAttr() and that sets the document to modified, which triggers the AutoSave that was reported in the bug. (regression from b4b7703e4335460cf48bfd6440f116359994c8ff) The history is so messy that I will not add keywords.