diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2023-06-01 08:31:34 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2023-06-01 09:18:44 +0200 |
commit | e2f90d1d0e51c68dd01c9968cdb7a3bbb5658613 (patch) | |
tree | c15e0c44f8dbbf3601ba2a64f8a24ba54c00ffd5 /sc/uiconfig/scalc | |
parent | 4ee0aa2ebda0ccd61ea4e0da3caa07d5f9a72eb9 (diff) |
tdf#103869 sw floattable: fix lost table right before a section break from DOCX
The bugdoc has 2 pages and 2 tables, one table on each page. The table
on the first page was missing in Writer.
What happened is that the floating table is anchored in the next
paragraph, but that is removed (since it's the last one in the section,
so no need for a "next" paragraph), which shifted the table to the next
section, which was already a wrong anchor point. Then that next section
(next page) started with a (floating) table, so a dummy text node was
inserted at the start, which means once it's disposed at the end of the
2nd section, we lost the first floating table with its bad anchor.
Fixing the problem was a bit tricky, because
DomainMapper_Impl::RemoveLastParagraph() is called before the text frame
conversion would be invoked in DomainMapperTableHandler::endTable(), so
we can't check if this last paragraph has something anchored in it, as
it's too early. Instead, detect that a floating table will be created,
and don't remove the last paragraph in this case, since we know that
we're at the end of the section (that's why we remove the last
paragraph).
The export result looks OK, we keep the
paragraph-table-paragraph-table-paragraph model correctly.
Change-Id: I4612a15d0d1ad3fe527593a21a4120096790a33f
(cherry picked from commit ba2f4ebc5343f3eca27baaaf27906be2e6486fcd)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152472
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
Diffstat (limited to 'sc/uiconfig/scalc')
0 files changed, 0 insertions, 0 deletions