Skip to content

v14.1.0

Choose a tag to compare

@JSv4 JSv4 released this 21 Oct 14:17
· 113 commits to main since this release
1b05750

Minor release. Full details in CHANGELOG.md.

Added

  • DocxEditor takes a showRevisions option, with showRevisions(bool) and revisionsVisible, that
    decides whether the revisions already in a document render, separately from how trackedChanges
    records new edits (#1279). Left unset it follows the recording mode, as before.

Fixed

  • Read every keyword of an HTML text-decoration value when converting HTML to DOCX (#1273). The
    converter compared the whole value with underline and line-through, so a value with more than
    one keyword produced no line at all, and a DOCX → HTML → DOCX round trip dropped double underlines
    and double strikethroughs. underline double now gives <w:u w:val="double"/>,
    line-through double gives <w:dstrike/>, underline line-through gives both lines, and the
    dotted, dashed and wavy styles map to Word's dotted, dash and wave underlines.
    Single-keyword values and <u>/<s> elements convert as before.

  • Prevent a synthetic nonbreaking-space run in the required blank paragraph after a nested table. The paragraph retains a one-twip layout box for source geometry, so fitting nested footnote tables no longer fail PDF clipping verification (#1217).

  • Leader-and-page-number lines in HTML output stay on one line and end their page number on the right
    tab stop (#1275). A right stop past the paragraph's right indent, or past the column edge, no longer
    pushes every entry onto a second line: the right-aligned segment extends past the line end to the stop,
    as LibreOffice lays it out. A bookmark,
    a non-breaking hyphen, or underline or strike on the tab run no longer switches the right
    tab to a fixed width measured on the server, which left the page number short of the stop.

  • Consolidation reports competing additions of a bookmark name instead of silently dropping a range
    or keeping duplicate names (#1212). BaseWins retains the base's absent name; FirstReviewerWins and
    StackAll retain the first range and report every competitor. Equal ranges share one attributed copy.
    Independent text edits still compose, and rejecting the selected addition removes its bookmark.

  • A paragraph's own w:framePr now overrides its paragraph style's frame properties attribute by
    attribute instead of replacing them whole (#1276). A footer paragraph whose style defines a
    page-anchored frame and whose own w:framePr sets only w:wrap keeps the style's width, anchors
    and offsets in the converted HTML, as LibreOffice renders it. Each axis's offset and alignment
    (w:x/w:xAlign, w:y/w:yAlign) count as one setting, so a paragraph's own w:x is not
    realigned by its style's w:xAlign. A style's w:dropCap and w:lines do not carry over to a
    paragraph with its own w:framePr, so they cannot hide a frame the paragraph positions itself.

  • Margin comment replies no longer repeat the full note box at every nesting level (#1277). A reply
    now sits inside its parent's note behind a thin separator, without its own fill, border, shadow or
    side padding, and the replies container no longer indents, so reply text keeps the root note's width
    instead of losing about 22px per level.

  • Consolidation preserves one reviewer's added bookmarks when other reviewers edit the same paragraph,
    including paragraphs in content controls, hyperlinks and table cells (#1212). Same-shell block wrappers
    compose their child edits with per-reviewer authorship; overlapping edits still use the selected conflict
    policy. Each reviewer's removal of a shared bookmark remains independently selectable.

  • The editor no longer counts a rendered tracked deletion, or the pilcrow shown for a deleted paragraph
    mark, as paragraph text when tracked changes are shown inline (#1278). Typing to the right of either
    was refused with offset_out_of_range and the keystrokes lost, or landed at the wrong place in the
    paragraph. The deleted text stays visible but cannot be edited. As in Word, a single Backspace or
    Delete next to it steps over it and removes the live character beyond it. It removes nothing when
    that paragraph has no live character beyond the deletion, when a line break, tab, image or field
    also lies between the caret and that character, or for a word or line deletion. Typing into a
    paragraph whose only text is deleted is recorded even when the paragraph holds a bookmark; there it
    goes in as plain text at the start of the paragraph, without line breaks or formatting. In this
    mode the editor's find() and wordCount() no longer match or count deleted text, which agrees
    with the session's own text and its Grep.

  • The ribbon's Markup dropdown changes only how revisions are shown (#1279). "No markup" used to turn
    tracked changes off and clear the Track Changes checkbox, so edits made afterwards were no longer
    recorded as revisions. With the two settings apart, typing into a paragraph whose only text is
    deleted keeps that deletion when revisions are shown and edits are not recorded (rewriting the
    paragraph had discarded it), and is recorded when edits are recorded with the markup hidden, even
    in a paragraph that holds a bookmark; so is typing into an empty paragraph that holds a bookmark
    while edits are recorded, which was refused. There the typed text goes in as plain text at the
    start of the paragraph, without line breaks or formatting.