What's Changed
- Animations: index morph matching and timeline lookups by shape by @dylanmtaylor in #1700
- Fonts: shape long items in bounded pieces by @dylanmtaylor in #1702
- ui: label animation effect options by @Harrison-Booth in #1579
- Preserve bullet sizes authored in points by @Harrison-Booth in #1588
- Transitions: play transition preview from previous slide when Preview is clicked (#1654) by @Naseq in #1679
- Reject unsupported handout perPage values in file.export by @Silvertree2010 in #1680
- Reject invalid master and layout indices in view.slideMaster by @Silvertree2010 in #1682
- Use a short temp file name in write_file for long file names by @Silvertree2010 in #1686
- Render: tiled picture fills keep their size in scaled groups and upright tiles by @leobasilio in #1693
- Comments: the pane keeps its width and resizes again (fixes #1431) by @Luis-0508 in #1694
- Reject png/jpeg targets in file.save instead of writing zip bytes by @Silvertree2010 in #1698
- Format: bound native load work for the manifest, failed media reads and layout checks by @dylanmtaylor in #1704
- Pictures: compress grouped images at displayed size by @Harrison-Booth in #1707
- Preserve centered anchoring on table cells by @Harrison-Booth in #1709
- Preserve text overflow settings in PPTX by @Harrison-Booth in #1710
- Preserve compatible line spacing in PPTX by @Harrison-Booth in #1711
- Preserve normalized character height in PPTX by @Harrison-Booth in #1712
- Preserve Thai distributed paragraph alignment by @Harrison-Booth in #1713
- Remove deleted slides from custom shows by @Harrison-Booth in #1717
- Reuse custom table styles with reused slides by @Harrison-Booth in #1719
- Fit reused slides to the destination size by @Harrison-Booth in #1720
- Preserve RTL table direction on save by @Harrison-Booth in #1721
- Preserve alternate run language by @Harrison-Booth in #1722
- Preserve reflection transforms through save and reopen by @Harrison-Booth in #1723
- fix(pptx): place effects by their parent time node delays (fixes #1744) by @Naseq in #1751
- Remove dangling animations when merging shapes by @Harrison-Booth in #1716
- AV1, HEVC: count repeated-frame outputs incrementally and drop inherited entry-point storage by @dylanmtaylor in #1763
- Charts: group box values and stacked sums in one pass, share hierarchy labels, cap number formats by @dylanmtaylor in #1760
- PPTX: index media, layouts, sections and table styles on export by @dylanmtaylor in #1761
- Review: replace each whole word in one pass by @dylanmtaylor in #1793
- Engine: check the temporary file's path against the write root by @dylanmtaylor in #1792
- PPTX export: index animation targets, cache build roles, serialize run properties once per text run by @dylanmtaylor in #1788
- Text edit: splice inserted paragraphs once and paste runs without rescanning by @dylanmtaylor in #1787
- Morph: pick the next curve to split from a heap, not a full scan by @dylanmtaylor in #1782
- Spelling: bound a word's language and index results by offset by @dylanmtaylor in #1767
- PPTX: take nested math text once and check an object's part for relationships once by @dylanmtaylor in #1762
- WordArt: measure each follow band once when mapping warped lines by @dylanmtaylor in #1758
- Text: sort a paragraph's tab stops once and find the next by binary search by @dylanmtaylor in #1757
- Engine: use sets for slide ranges, added slide selection and repeated-word offsets by @dylanmtaylor in #1756
- Compare: index slide, shape and media lookups and compare each picture pair once by @dylanmtaylor in #1752
- PPTX: read a notes or comments part for the first slide that names it by @dylanmtaylor in #1741
- PPTX: index relationships by id on import and by target on export by @dylanmtaylor in #1739
- Render: evict the least recently used animation instead of clearing the GIF cache by @dylanmtaylor in #1802
- Thumbnails: index section starts once by @dylanmtaylor in #1800
- Text, morph: share a run's gradient between glyph runs, match morph tokens by text by @dylanmtaylor in #1784
- Render: find a glyph's line by bisection for gradient and WordArt text by @dylanmtaylor in #1783
- Render: index table style, skip list, chart point fills and waterfall bars; count each dash by @dylanmtaylor in #1774
- Fonts: bound font-controlled work in enumeration, outlines and carets by @dylanmtaylor in #1701
- Ogg, xtask: check packet ranges against the source first; stats skips directory links by @dylanmtaylor in #1796
- Repair: bound the notes page size like a slide by @dylanmtaylor in #1832
- Fonts: ignore variation tags the font has no axis for by @dylanmtaylor in #1795
- Keep whole character after a backslash in RTF outline import by @Silvertree2010 in #1454
- Ogg: include recovered tail packets in Opus duration by @MMexicann in #1862
- Use evaluated field values in the placed text so the PDF text layer shows the slide number (#1153) by @MarekSpodBiedry in #1192
- Pass the Linux signing key to the release workflow by @dylanmtaylor in #1868
- Reject malformed comment navigation indices by @Harrison-Booth in #1547
- Shape Fill: the gradient help says which kinds rotateWithShape keeps upright by @dotCooCoo in #1843
- Make Previous/Next work in the web presenter popup by @Silvertree2010 in #1870
- PPTX: Show media controls survives a save and reopen by @zberry in #1474
- Show: All slides opens in the web Presenter View, as on desktop by @FredApps in #1872
- About: credits tables fit without side-scrolling and their columns resize by @FredApps in #1806
- Outlines leave footer, date and slide-number placeholders out: export, RTF and the outline view by @zberry in #1879
- Table cell commands refuse a malformed
cellslist instead of dropping entries by @zberry in #1875 - Flip is refused on a SmartArt graphic instead of turning it into a plain group by @zberry in #1881
- UI: follow Grayscale view mode in slide thumbnails by @sbjwin in #1886
- shape.connect glues to a shape inside a group, and the connector follows it by @zberry in #1876
- Web: open and save through a framing page (?host=parent) by @jimprince in #1809
- Fix Copying Images, Ctrl-C/Ctrl-V and within Deckcraft by @SSchott in #1658
- Show: Presenter View only with a second display by @melandur in #1156
- deckcraft-web: host messages through craft-web-host, and page host mode by @helenkwok in #1895
- Release: refresh contributor credits for each release (#1889) by @Luis-0508 in #1890
- Copy the shared house rules into AGENTS.md by @FredApps in #1918
New Contributors
- @Luis-0508 made their first contribution in #1694
- @sbjwin made their first contribution in #1886
- @jimprince made their first contribution in #1809
- @SSchott made their first contribution in #1658
- @melandur made their first contribution in #1156
- @helenkwok made their first contribution in #1895
Full Changelog: v0.15.1...v0.16.0