diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2023-02-24 08:21:22 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2023-02-24 09:24:56 +0000 |
commit | 6068ae5df9da179e1d187e27117a9d761116f968 (patch) | |
tree | 5fa9e7314e5b71dc5326dc3a87fc635627147316 /ucb/source/ucp | |
parent | 818e98eed2ecf76b5ddcd17667d80fa935b7a91a (diff) |
sw floattable: don't promise infinite growth in SwFlyFrame::Grow_()
In case the document has a single cell in the floating table with
multiple lines, we may need to split the cell, but currently we don't.
One problem is that SwTabFrame::MakeAll() for the master table gets an
error from Split(). Digging deeper, SwTextFrame::SplitFrame() is not
called at all, because SwTextFrame::FormatAdjust() thinks that the
content will fit, because SwTextFrameBreak::IsInside() says so. This
happens because it tries to do a test grow on the fly frame, and
that promises to grow as much as wanted.
Infinite grow for fly frames is reasonable by default, but we want to
limit the size for split flys, so a follow fly will be created. Fix the
problem by improving SwFlyFrame::Grow_() to handle the
IsFlySplitAllowed() case explicitly. Now we split the text frame, which
is needed but not enough to split the entire fly -> table -> row -> cell
-> text frame hierarchy.
SwSectionFrame::Grow_() has a similar limit in place already.
Change-Id: Ie07362a8dc3aa8c4fbb69eaf7e35717ba79b99a0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147593
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
Diffstat (limited to 'ucb/source/ucp')
0 files changed, 0 insertions, 0 deletions