Commit Graph
1837 Commits
Author SHA1 Message Date
Harrison Booth fd4d2a8f79 Merge remote-tracking branch 'origin/main' into dc-build-d604
# Conflicts:
#	ROADMAP.md
#	docs/gaps.md
2026-11-02 15:36:41 -06:00
Brandon Thomas 0d45a64db2 Merge pull request #1645
test: make the language-dialog test independent of installed dictionaries
2026-11-02 04:53:51 -05:00
Brandon Thomas e832a373f5 Merge pull request #1639
Text: scale down insets when wider than the shape (#1632)
2026-11-02 04:53:51 -05:00
Brandon Thomas 6c63345615 Merge pull request #1667
Fix Unit::format printing "-0.00" for tiny negative lengths
2026-11-02 04:53:50 -05:00
Brandon Thomas 1f2c75a288 Merge pull request #1631
Keep Xfrm::rot_norm within 0..360 for tiny negative rotations
2026-11-02 04:53:50 -05:00
Brandon Thomas fd4c533425 Merge pull request #1630
Apply alphaMod and alphaOff in ColorRef::alpha
2026-11-02 04:53:49 -05:00
Brandon Thomas d4d99c7627 Merge pull request #1628
Keep combining marks inside spell-check words
2026-11-02 04:53:49 -05:00
Brandon Thomas 9fce04f0b4 Merge pull request #1627
Lowercase word-final Σ as ς in title and sentence case
2026-11-02 04:53:48 -05:00
Brandon ThomasandClaude Opus 5.5 ffd77c7db0 Spell check: a mark on trailing punctuation is trimmed with it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 04:53:47 -05:00
Brandon Thomas 1f6587b60d Merge pull request #1373
PPTX: parse each tags part once and cap the tags an import copies (#1164)
2026-11-02 04:51:27 -05:00
Brandon Thomas d09f4c1284 Merge pull request #1247
H.264: temporal direct mvs are scaled in i32 and clipped to the spec range
2026-11-02 04:51:26 -05:00
Brandon Thomas 37a6aed679 Merge pull request #1614
Fonts: unavailable monospace fonts fall back to a monospace substitute (#1598)
2026-11-02 04:51:26 -05:00
Brandon Thomas 02ea528e94 Merge pull request #1626
render: keep even-odd holes open in shadow, glow and reflection silhouettes
2026-11-02 04:51:25 -05:00
Brandon Thomas bcc4fc97e6 Merge pull request #1558
Allow resizing on all selected shapes (#1539)
2026-11-02 04:51:19 -05:00
Brandon Thomas f4fcac9f2d Merge pull request #1623
Let clicks pass through empty No Fill shapes
2026-11-02 04:51:18 -05:00
Brandon Thomas babc950f81 Merge pull request #1601
Reject invalid slide index in design.background
2026-11-02 04:51:17 -05:00
Brandon Thomas 468394b3c8 Merge pull request #1600
Shape Fill: the gradient help lists every kind and key the command takes
2026-11-02 04:51:17 -05:00
Brandon ThomasandClaude Opus 5.5 5eb0b7d2c0 docs: one revision row per doc for #1621, keep the Last reviewed dates
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 04:51:13 -05:00
Brandon ThomasandClaude Opus 5.5 01220df579 design.background: check the index before a picture is added to the media
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 04:51:01 -05:00
NetterSilverandClaude Haiku 5.5 b0b87c5cad Fix Unit::format printing "-0.00" for tiny negative lengths
Found while testing crates/geom/src/lib.rs:72-76

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 05:37:53 +01:00
Simon Koch-SultanandClaude Opus 5.5 befa4cd69f Merge main into test/portable-render-validation
Main fixed the PDF font fixture independently (9005839), so that half
of this branch is dropped in favour of main's version; the language
dialog label fix remains.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 16:54:25 -05:00
Simon Koch-SultanandClaude Opus 5.5 cc00a17dfe #1596: let effect-hole QA images overwrite an earlier run's
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 15:52:54 -05:00
FredAppsandFredApps 90058395b7 WASM: open presenter view in a separate browser window (#729) (#730)
* docs: track WASM presenter popout work (#729)

* Fix presenter transport retries and initialize popup note fonts

* Clarify optional font coverage and source-verified popup lifecycle

---------

Co-authored-by: FredApps <FredApps@users.noreply.github.com>
2026-11-01 21:36:45 +01:00
Brandon ThomasandClaude Opus 5.5 ee39ff6781 Release 0.14.1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.14.1
2026-11-01 14:14:22 -05:00
Brandon ThomasandClaude Opus 5.5 bbd579813f packaging(flatpak): flatpak-oci.sh sources common.sh, not the absent env.sh
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 14:14:20 -05:00
Brandon ThomasandClaude Opus 5.5 eaf8d1ce3f Release 0.14.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 13:57:23 -05:00
Dylan M. Taylor f2f0c4373d docs: sync Craft App Suite list with ArtCraft Launcher 2026-11-01 12:30:03 -05:00
SusieeTheFemboyandClaude Opus 5.5 14cc73101b H.264: cite temporal direct as 8.4.1.2.3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 16:46:05 +01:00
scks1 650c4f9497 #1597: make validation independent of installed fonts and dictionaries 2026-11-01 08:58:13 -05:00
scks1 9f952550b2 #1596: add shadow, glow and reflection pixel goldens 2026-11-01 08:58:11 -05:00
xmaks82andМагда М.Г. 5fb694d991 Text: a word doesn't break after ?, !, } or + (URLs wrap as in PowerPoint) (#924)
* Text: a word doesn't break after ?, !, } or + (URLs wrap as in PowerPoint)

Unicode line breaking allows a break after ?, !, } and + inside a word,
so a long URL broke after its '?' and after each '+' of a query and left
the rest of the line empty. Measured in PowerPoint 2016 for Windows with
latinLnBrk off (its default), none of them is a break: the word fills the
line and breaks where it no longer fits, as PowerPoint already does after
/ and \ (break_opportunities). The same synthetic slide now wraps line for
line as PowerPoint's PDF does, a Yandex search URL included.

* Text tests: the first line doesn't end at the separator

* Text tests: check the line is full, not that it avoids ending at a separator

* Keep the Unicode break after ?, !, / outside Latin words

The PowerPoint no-break rule only holds inside a word: before an ideograph
(日本!語) or punctuation the Unicode break stays, as CodeRabbit pointed out.

* Only letters and digits continue a word for the no-break rule

AL and AI also hold symbols such as & and ×, so a!&b kept no break after !.
is_word_char now also requires c.is_alphanumeric() (CodeRabbit).

* Test that Latin before CJK and a separator before a space still break

---------

Co-authored-by: Магда М.Г. <mail@mgmagda.ru>
2026-11-01 10:54:32 +01:00
Elliot Graham 7f742c9d4f FIX-1621: cover locked and outline-free No Fill shapes 2026-11-01 09:29:42 +00:00
Naseq b5033b6213 Text: preserve signed insets and scale only when both are non-negative
Address review finding: keep signed insets unchanged when their sum fits,
scaling opposing insets proportionally only when both in the pair are
non-negative and their sum exceeds the box dimension.
2026-11-01 13:38:14 +04:30
Naseq b6c1d87cf0 Text: scale down insets when wider than the shape (#1632)
When text insets exceed the shape dimensions (e.g. lIns + rIns > width),
proportionally scale them down so the inner text rectangle remains
bounded within the shape. Prevents off-slide helper shapes with large
insets from having their text center shifted onto the slide canvas.
2026-11-01 11:54:38 +04:30
Naseq c37b150950 PPTX: parse each tags part once, cap copied tags, and bound cache (#1164)
- Parse each tags part once per import and cache in `Imp::tags_by_part`
- Cap total copied tags into the model at `MAX_TAG_BYTES` (64 MiB), charging each pair a fixed size_of::<(String, String)>() in addition to text
- Bound the cache: once `tags_capped` is set, return early before parsing or caching any subsequent part
- Tests covering deduplicated part copies, empty-tag pair budgets, and verifying unread tag parts are not parsed or cached after the budget is reached
2026-11-01 11:30:12 +04:30
MadhasoekiandCopilot f3d8ba85a6 tests(fonts): add specific tests requested by reviewer for monospace resolution
Verify Consolas, Courier New, Fira Code, Monotype Corsiva, Monoton,
and ensure proportional family substitutes remain unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-01 11:35:53 +07:00
Dylan M. Taylor e690829543 ci: grant packages write permission to release workflow 2026-10-31 23:43:08 -04:00
MadhasoekiandCopilot c0468b59cd Fonts: classify Cascadia Code PL as monospace (#1598)
Add Cascadia Code PL and Cascadia Mono PL to the monospace family
matching list, and add regression tests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-01 10:31:17 +07:00
NetterSilverandClaude Haiku 5.5 5d27461fa6 Keep Xfrm::rot_norm within 0..360 for tiny negative rotations
Found while testing crates/geom/src/lib.rs:155-158

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 02:55:58 +01:00
NetterSilverandClaude Haiku 5.5 773133ec42 Apply alphaMod and alphaOff in ColorRef::alpha
Found while testing crates/model/src/style.rs:59-63

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 00:52:04 +00:00
MadhasoekiandCopilot 8ec4f29059 Fonts: refine monospace heuristic and preserve office_twin order (#1598)
- Avoid false-positive monospace match on 'code' in split_whitespace for
  proportional families like Code Pro.
- Check office_twin before is_monospace_family in document_face so alias
  families like Courier New CE resolve to Courier New when installed.
- Add negative tests for Code Pro and test Courier New CE mapping.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-01 07:19:41 +07:00
NetterSilverandClaude Haiku 5.5 87a10fc8e2 Keep combining marks inside spell-check words
Found while testing crates/engine/src/spell.rs:693 (paragraph_words, the `inside` closure)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 00:19:15 +01:00
NetterSilverandClaude Haiku 5.5 3fb6c43136 Lowercase word-final Σ as ς in title and sentence case
Found while testing crates/model/src/edit.rs:470-497 (change_case_parts, title/sentence branch)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 00:08:51 +01:00
Dylan M. Taylor 82573331a8 packaging(flatpak): add OCI image build and GHCR publishing helper (#1625) 2026-10-31 18:52:58 -04:00
Simon Koch-Sultan d990678b32 render: keep even-odd holes open in shadow, glow and reflection silhouettes
effects_below merged all subpaths into one silhouette and filled it
with the NonZero rule, discarding each subpath's even_odd flag, so the
holes of donut, frame and similar preset shapes filled in under outer
shadows, glows and reflections. Fill each participating subpath under
its own fill rule at the three effect fill sites, mirroring
fill_geometry; the glow stroke keeps the merged silhouette.

Fixes #1596. The picture-content shadow clip path is unchanged
(that is #1597's territory).
2026-10-31 17:18:44 -04:00
Elliot Graham cd19752bb5 FIX-1621: let no-fill interiors pass clicks to underlying objects 2026-10-31 19:38:08 +00:00
MadhasoekiandCopilot 2ed2ce18d8 Fonts: unavailable monospace fonts fall back to a monospace substitute (#1598)
When a document uses a monospace font that is not installed on the
system (such as Cousine, Source Code Pro, JetBrains Mono, Consolas, or
Cascadia Code), document_face previously fell back to the generic
proportional MISSING_FONT_FAMILY (Calibri), causing code snippets and
columns to misalign.

Add is_monospace_family to recognize monospace families, ensure
substitutes returns open monospace replacements (Liberation Mono,
Courier New, Menlo, Courier, DejaVu Sans Mono), recognize Cousine as
a metric twin of Courier New, and keep monospace families on their
substitute chain in document_face.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-31 22:25:50 +07:00
DominicTheD3v c5ac1dd44b docs: add missing docstrings 2026-10-31 07:52:55 +00:00
DominicTheD3v 84ac51a439 fix: addressing more issues 2026-10-31 07:04:09 +00:00
NetterSilverandClaude Haiku 5.5 c3e9bd07e5 Reject invalid slide index in design.background
Found while testing crates/engine/src/cmd/design/slide_background.rs:65 (index via usize_param); write_background at :175

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:38:17 +01:00