In Word, the layer that contains a background image is behind the layer
that contains the paragraph background. In Writer, the paragraph
background is painted before the hell layer. Add a compat flag to change
the order, so the DOCX importer can trigger that.
To reproduce, create an XShape, send it to the background, set some
color for a paragraph background, and notice that the background color
is missing where the shape is behind the text.
Change-Id: I9b1fffd9ac9a6e5a1c3d1f65371440047d125b38
Word clips pictures that are bigger than a page instead of scaling them
down. This patch introduces a new compatibility option to allow clipping
a picture in Writer instead of scaling it down.
Change-Id: I4defbee05be81e23ec28a2ed272eaf4e4cc6faf5
The DOCX filter imports floating tables as frames containing a table.
Word ignores the margins of paragraphs next to such a table, Writer does
not. Add a compatibility flag the import filter can set that triggers
this weird behaviour.
Change-Id: Iaaa1d2a2e2f9d0eaea17832b2e418f9a845efffd
- inverted check in SwDoc::RemoveInvisibleContent
- various too short end positions in DeleteAndDestroy calls in
SwDoc::~SwDoc and SwDoc::ClearDoc
- std::copy to begin() of empty vector in SwReader::Read replaced
with std::back_inserter; the vector is used as a set here so the
end position should work just as well
Change-Id: Ib2ddd788fade4ee1a8beb702d5321c503985fba4
- I had to convert SwFrmFmts, SwSpzFrmFmts, SwCharFmts, SwSectionsFmts,
SwTextFormatColl, SwGrfFmtColl all together because of the code that wants
to work with any of them.
- Introduce a pure virtual base class SwFmtsBase, since there are a handful
of methods that want to work with any of the std::vector<Sw*Fmt> types.
- the class SwSpzFrmFmts was dropped, and the code changed to use SwFrmFmts
instead, since the 2 types are identical.
Change-Id: I8c4056b5aedd574a33666e2d649a8b849958441c
Signed-off-by: Fridrich Štrba <fridrich.strba@bluewin.ch>
In the bug file, some text wrapping was badly computed when showing the
document (but not at the first rendering) due to that weird NotToWrap
mecahnism in SwLayouter. Checked the original issue i#40155 that
removing this does hurt.
Added a new compatibility option to keep the previous behavior, but
changed the default to avoid lines insertion for tabs when there are tab
stops set beyond the end margin
apparently SwXTextDocument::getRenderCount() may be called more than once,
so make SwRenderData::CreatePostItData() stop complanining and leaking
memory.
Currently when printing via SwXTextDocument::getRendererCount()
two STL containers in class SwRenderData are filled with bare pointers
to page frames from the layout.
These pointers are then used by SwXTextDocument::render(), which takes
one page out of the map and prints it via this non-ref-counted pointer.
This bizarre design will not be tolerated; instead, when printing a page,
iterate over SwRootFrm::GetLower() until the requested page is found.
This is slower, i.e. O(n^2), but at least it does not crash.
Version 3.2 had 66 as the small capitals size percentage, later
changed to 80 (see e.g. http://openoffice.org/bugzilla/show_bug.cgi?id=1526).
This however can destroy layout of old documents that rely on the old
size. So for backwards compatibility the old value is used if either
the .odt document has an option enabled or does not have the option
at all (meaning it's an older .odt document). There's unfortunately
a period when the new value was already in effect where this change
can break those documents :-/.