Dominik Strebel and Claude Opus 5.5
0865152e86
Text: a space after a symbol-font character keeps the run's font
...
PowerPoint stores an arrow typed in a Wingdings run as U+F0E0 with
<a:sym typeface="Wingdings"/> on the whole run, and draws only the
symbol code in Wingdings: the space after it is the run's own font. A
synthetic deck with "→ Only …" (U+F0E0, a space, words) in one run with
a:sym, and the same with a:sym on the arrow's run alone, exported as
PDF, draws both lines alike. DeckCraft kept the space in the arrow's
face, since spaces, digits and punctuation stay in the face of the text
before them, and Wingdings' space is about four times a text font's: the
words started 20 pt further right.
A neutral character no longer stays in a symbol font's face
(is_symbol_font); it takes the run's font like any other.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 12:27:58 +01:00
Dylan M. Taylor
aaf6c1c38a
refactor(show): split the key handler into grid, navigation and tool keys (S3776) ( #1402 )
2026-10-25 21:13:50 -04:00
Dylan M. Taylor
16fe4ebc65
refactor(hevc): split derive_merge into spatial, temporal, combined and zero stages (S3776) ( #1401 )
2026-10-25 20:55:39 -04:00
Dylan M. Taylor
430d0a91c0
refactor(hevc): split prediction_unit into merge, AMVP and store helpers (S3776) ( #1400 )
2026-10-25 20:55:35 -04:00
Dylan M. Taylor
c93e0a0bac
refactor(rtf): split the outline reader into per-construct methods (S3776) ( #1399 )
2026-10-25 20:55:30 -04:00
Dylan M. Taylor
aa3a1baa01
refactor(av1): reduce complexity in cdef and loop restoration (S3776) ( #1278 )
2026-10-25 20:26:38 -04:00
Dylan M. Taylor
edfee40392
refactor(av1): split inverse transform into stages and passes (S3776) ( #1277 )
2026-10-25 20:26:33 -04:00
Dylan M. Taylor
580b577cf2
fix(h264): use Option::as_ref instead of closure (S1612) ( #1268 )
2026-10-25 20:26:28 -04:00
Dylan M. Taylor
3418dec9e4
refactor(h264): Sonar S3776 dpb helpers ( #1275 )
...
* refactor(h264): split dpb functions (S3776)
* fix(h264): restore the MMCO 6 long-term index range check
2026-10-25 19:36:54 -04:00
Dylan M. Taylor
a78d9a9a19
refactor(av1): split film grain synthesis into stages (S3776) ( #1276 )
2026-10-25 19:23:04 -04:00
Dylan M. Taylor
560f80abe2
refactor(h264): split derive_inter_motion and residual_cavlc (S3776) ( #1272 )
2026-10-25 19:22:58 -04:00
Dylan M. Taylor
2aa0310e27
refactor(av1): split OBU parsing in decoder (S3776) ( #1279 )
2026-10-25 19:22:35 -04:00
Dylan M. Taylor
b6fd616977
refactor(h264,hevc): reduce parameter counts (S107) ( #1271 )
...
Group geometry/size/weight parameters into tuples and a PbGeom struct.
2026-10-25 19:21:54 -04:00
Dylan M. Taylor
13ed8889da
refactor(av1): use method path instead of closure (S1612) ( #1269 )
2026-10-25 18:18:36 -04:00
Dylan M. Taylor
222ef368f4
Merge pull request #1273 from storytold/b-h264hevc-4
...
refactor(hevc): Sonar S3776 slicedec helpers
2026-10-25 16:36:14 -04:00
Dylan M. Taylor
d318583867
fix(render): optimize table styles, chart lookups, line trimming, and canvas limits ( #1288 )
...
* fix(render): optimize table styles, chart lookups, line trimming, and canvas limits
* fix(render): give outer-shadow passes their own traversal budget
A shadowed group's silhouette pass shared the 100,000-visit limit with normal drawing, so a group with many children could use it up before anything visible was drawn.
* perf(render): resolve a table's style once per draw
2026-10-25 16:01:43 -04:00
Dylan M. Taylor
d4945d0443
fix(codecs): harden media decoders against resource amplification and unbound state ( #1285 )
...
* fix(codecs): harden media decoders against resource amplification and unbound state
- Ogg recovery (Finding 29): Reuse capture search window buffer and bound
cumulative recovery work to prevent quadratic re-scanning.
- Opus packet concealment (Finding 40): Skip empty stored Opus packets
instead of triggering packet-loss concealment audio.
- Opus decoded PCM budget (Finding 63): Enforce aggregate MAX_PCM_SAMPLES
limit before expanding planar audio samples.
- H.264 DPB reference eviction (Finding 56): Validate MMCO 6 against
max_long_term_frame_idx and evict oldest entries when capacity is reached.
- HEVC missing reference frames (Finding 57): Share gray replacement frames
and bound missing references to DPB buffering limits.
- AV1 show_existing_frame budget (Finding 69): Cap frame outputs per chunk
to 32 to prevent output batch memory explosion.
- AV1 nonuniform tile bounds (Finding 89): Enforce MAX_TILE_COLS and
MAX_TILE_ROWS limits on nonuniform tile layouts.
* fix(codecs): refine show_existing_frame limit, PCM capacity check, and buffered Ogg search
2026-10-25 15:59:10 -04:00
Dylan M. Taylor
b70a6fda35
feat: startup update prompt modal and direct self-updating ( #1377 )
...
* feat: startup update prompt modal and direct self-updating
Ref: storytold/craft-libs#319
* build: pin craft-update to craft-libs main (b9ba47f) and refresh the lock
* refactor(updates): drive the flow with craft-update's Updater
Results are read independent of the prompt, a dropped worker is an error, failures return to the prompt, and no update starts over unsaved work. A manual check during the startup check is honored.
2026-10-25 14:48:33 -04:00
Brandon Thomas and Claude Opus 5.5
5d9c3818a5
Tests: the Slide Size preset test opens the dialog's own combo box (egui 0.37 exposes the ribbon's too)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 13:49:12 -04:00
Brandon Thomas and Claude Opus 5.5
31cf44c2ff
Integration: the merged PRs import what they use ( #1270 ) and use egui 0.37's wheel source and media clock ( #1350 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 13:45:19 -04:00
Brandon Thomas and Claude Opus 5.5
d20b08e3af
Tests: drop the units test's PNG debug hook; the PDF link test's doc says only web and mail links export
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 13:43:25 -04:00
Brandon Thomas and Claude Opus 5.5
4504495e2b
Tests: one blank line between the merged engine tests (cargo fmt)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 13:43:24 -04:00
Brandon Thomas
5e9043afa6
Merge pull request #1336
...
# Conflicts:
# crates/ui-egui/src/dialogs.rs
# crates/ui-egui/src/panes.rs
# crates/ui-egui/src/ribbon.rs
2026-10-25 13:43:07 -04:00
Brandon Thomas
f1bb876e28
Merge pull request #1334
...
# Conflicts:
# crates/engine/src/cmd/edit.rs
2026-10-25 13:42:53 -04:00
Brandon Thomas
5648c4d7ec
Merge pull request #1189
...
# Conflicts:
# crates/engine/src/tests.rs
2026-10-25 13:42:45 -04:00
Brandon Thomas
d85e397be4
Merge pull request #1291
...
# Conflicts:
# crates/engine/src/tests.rs
2026-10-25 13:42:45 -04:00
Brandon Thomas
0e78adc675
Merge pull request #1259
...
# Conflicts:
# crates/engine/src/cmd/richclip.rs
2026-10-25 13:42:29 -04:00
Brandon Thomas
556048436e
Merge pull request #1221
2026-10-25 13:42:06 -04:00
Brandon Thomas
637bbcdf51
Merge pull request #1118
2026-10-25 13:42:06 -04:00
Brandon Thomas
b6c1fe628c
Merge pull request #1109
2026-10-25 13:42:06 -04:00
Brandon Thomas
ad664b2cdd
Merge pull request #1107
2026-10-25 13:42:06 -04:00
Brandon Thomas
8b2c0f456a
Merge pull request #1294
2026-10-25 13:42:05 -04:00
Brandon Thomas
ea4001a26e
Merge pull request #1256
2026-10-25 13:42:05 -04:00
Brandon Thomas
4268cab027
Merge pull request #1246
2026-10-25 13:42:05 -04:00
Brandon Thomas
c8a13561b3
Merge pull request #1331
2026-10-25 13:42:05 -04:00
Brandon Thomas
90f723918b
Merge pull request #1319
2026-10-25 13:42:05 -04:00
Brandon Thomas
5f5f341d27
Merge pull request #1317
2026-10-25 13:42:05 -04:00
Brandon Thomas
d217820576
Merge pull request #1315
2026-10-25 13:42:05 -04:00
Brandon Thomas
d6d30bbf20
Merge pull request #1313
2026-10-25 13:42:05 -04:00
Brandon Thomas
7a9786b355
Merge pull request #1311
2026-10-25 13:42:05 -04:00
Brandon Thomas
5e2f1993c3
Merge pull request #1190
2026-10-25 13:42:05 -04:00
Brandon Thomas
24905e7057
Merge pull request #1358
2026-10-25 13:42:05 -04:00
Brandon Thomas
3c4d6e12de
Merge pull request #1354
2026-10-25 13:42:05 -04:00
Brandon Thomas
7d6445e060
Merge pull request #1353
2026-10-25 13:42:05 -04:00
Brandon Thomas
b21d71e648
Merge pull request #1352
2026-10-25 13:42:05 -04:00
Brandon Thomas
ec274ec2fe
Merge pull request #1351
2026-10-25 13:42:04 -04:00
Brandon Thomas
178edac4ac
Merge pull request #1329
2026-10-25 13:42:04 -04:00
Brandon Thomas
d0411d0332
Merge pull request #1304
2026-10-25 13:42:04 -04:00
Brandon Thomas
f034901719
Merge pull request #1303
2026-10-25 13:42:04 -04:00
Brandon Thomas
547807c58d
Merge pull request #1302
2026-10-25 13:42:04 -04:00