BFlat
9f4191336d
xtask: the private temp folder builder is mutable only on Unix ( #6712 )
2026-11-09 19:45:13 +08:00
bflatastic
720a841981
Merge #5393 : M12: a picture an XFA form links is drawn from the PDF's XFAImages name tree ( #5392 )
...
# Conflicts:
# crates/xfa/src/fixtures.rs
# crates/xfa/src/tests.rs
2026-11-09 18:40:50 +07:00
bflatastic
9147411e9c
Merge #5370 : M12: a flowed XFA subform in a table cell is as tall as its content ( #5367 )
...
# Conflicts:
# crates/xfa/src/layout/measure.rs
# crates/xfa/src/tests.rs
2026-11-09 18:40:22 +07:00
bflatastic
9e55f61de0
Merge #5369 : M12: an XFA subformSet is transparent to layout, so its members sit where their container puts them ( #5366 )
...
# Conflicts:
# crates/xfa/src/layout/measure.rs
# crates/xfa/src/parse.rs
# crates/xfa/src/tests.rs
2026-11-09 18:39:26 +07:00
Grzegorz Martens and Claude Opus 5.5
0a00862e91
redact: the shared-JBIG2 walk names by object number, and reads what it stores by number and generation
...
Main's #1143 (863af864a ), merged in 77b9cfa31 , makes cos read a reference whose generation isn't
its object's as null. The walk that finds what shares a /JBIG2Globals dictionary with what left
fetched through `Document::get`, but remembered what it read by object number alone, so a
reference of another generation and the object's own one shared what the first of them read:
- What a parameters value names (`Run::names_in`): `/DecodeParms [10 1 R 10 0 R]` on an image
that left, object 10 naming dictionary 9, read 10 1 R as null, named nothing, and remembered
that for object 10. The 10 0 R after it found it, so nothing named 9, and the dictionary
stayed in the file with the image another page kept.
- A size, filters or parameters an image is stored again with (`Run::follow`): an image whose
`/Width 11 1 R` reads as null can't be stored again, and refused the run alone. Once another
image had read 11 0 R, it took that width and was stored with it.
What an image names is now read by object number, whatever generation the reference gives
(`Run::fetch_numbered`), in `names_in` and in the `/JBIG2Globals` chain alike: a reader that
doesn't compare generations draws with that object, so what an image that left names this way
may hold its shapes. That is how the chain already named `9 1 R` (the "another generation" way
out), and how both read before #1143 . What is read by number is remembered by number. The
values an image is stored again with are read as cos reads them, and remembered by number and
generation, so a reference of another generation reads its own way.
`kept`'s comment said a reference reads the object of its number whatever its generation, which
is no longer so for a full save. It says how `reachable_objects` reads one now. The README and
`Run`'s comments say which reads take the number and which the generation too.
Tests:
- `a_redacted_scans_shared_jbig2_dictionary_leaves_the_file` gains three ways out:
- parameters through another generation, then their own;
- parameters through another generation alone;
- a `/JBIG2Globals` reference to a reference of another generation.
- `a_size_through_another_generation_isnt_the_one_its_own_reference_reads` stores no image
with the width another reference read. It refuses instead.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01AmsdeUCdTaD72jkDw2pJKY
2026-11-09 12:38:38 +01:00
bflatastic
ab2d4382ff
Merge #5368 : M12: XFA master-page fields keep their own value on each page ( #5365 )
...
# Conflicts:
# crates/engine/src/xfa.rs
# crates/xfa/src/layout/pages.rs
# crates/xfa/src/lib.rs
# crates/xfa/src/script.rs
# crates/xfa/src/tests.rs
2026-11-09 18:38:21 +07:00
bflatastic
74b3452328
Fit the landed changes together: the print-settings discard is its own function
2026-11-09 18:37:28 +07:00
bflatastic
c7f1fc7540
Merge #5225 : M12: XFA field names made up for repeated fields never take a name the template uses ( #5224 )
...
# Conflicts:
# crates/xfa/src/layout/common.rs
# crates/xfa/src/tests.rs
2026-11-09 18:36:41 +07:00
bflatastic
0575de68ff
Merge #5153 : M12: an XFA subform without a height is as tall as its content, flowed or positioned ( #5152 )
...
# Conflicts:
# crates/xfa/src/tests.rs
2026-11-09 18:36:01 +07:00
bflatastic
629d211506
Merge #5124 : M12: XFA table rows start at their minimum height, and a growable row group splits at a page break (form.xfa-dynamic)
...
# Conflicts:
# crates/xfa/src/layout/flow.rs
# crates/xfa/src/layout/measure.rs
# crates/xfa/src/tests.rs
2026-11-09 18:35:21 +07:00
bflatastic
8c19e0d1bd
Merge #5122 : fix(xfa): AcroForm field walks read each field once and bound what they queue
...
# Conflicts:
# crates/xfa/src/pdf.rs
# crates/xfa/src/tests.rs
2026-11-09 18:33:53 +07:00
bflatastic
85ebbab0ce
Fit the landed changes together: modify.rs imports polygon_rect
2026-11-09 18:33:09 +07:00
bflatastic
d92046f815
Fit the landed changes together
...
Format the attachment-key numbering kept from both sides of #5508 's merge.
2026-11-09 18:32:42 +07:00
bflatastic
50f174afb7
Merge #5010 : M12: XFA scripting object model (1/3): scripts read template properties as XFA 3.3 defines them
...
# Conflicts:
# crates/engine/src/xfa.rs
# crates/js/src/xfa/host.rs
# crates/xfa/src/packets.rs
# crates/xfa/src/parse.rs
# crates/xfa/src/tests.rs
# parity/acrobat-features.toml
2026-11-09 18:30:30 +07:00
bflatastic
c994a0a4ac
Fit the landed changes together
...
Comment literals in tests gain the callout text box and pop-up fields, and the review-state map is formatted.
2026-11-09 18:29:25 +07:00
bflatastic
74cc90dc50
Merge #6098 : fix(forms): AFSimple_Calculate folds field values as it reads them, within an allowance
...
# Conflicts:
# crates/forms/src/af/tests.rs
2026-11-09 18:28:11 +07:00
bflatastic
28247e037f
Merge #6092 : fix(a11y): annotation checks and form tagging stop copying shared annotation data
...
# Conflicts:
# crates/a11y/src/tests.rs
2026-11-09 18:27:44 +07:00
bflatastic
0bfef25cce
Merge #4440 : M11: PDF Optimizer can discard an embedded search index (optimize.discard-search-index)
...
# Conflicts:
# crates/automation/src/tools.rs
2026-11-09 18:27:14 +07:00
bflatastic
c1d9dd1db1
Merge #4791 : M12: a dynamic XFA form runs all its opening scripts and is laid out once, so a save no longer keeps a half-initialized form ( #4790 )
...
# Conflicts:
# crates/engine/src/xfa.rs
# crates/forms/src/tests.rs
# crates/xfa/src/data.rs
# crates/xfa/src/lib.rs
# crates/xfa/src/tests.rs
# parity/acrobat-features.toml
2026-11-09 18:26:29 +07:00
Grzegorz Martens and Claude Opus 5.5
718a725812
M8: the Type 3 cleanup reads forms, appearances and soft masks with /DecodeParms by reference
...
Three reads of the Type 3 cleanup came in from main in the merge, and
took `/DecodeParms` only when direct: the forms a surviving glyph draws
(`prune_font_forms`), a page's appearances without resources of their
own, and the soft mask groups without them (`add_soft_mask_ops`). Behind
a predictor whose parameters are an indirect object, each read the
predictor's tag bytes and row differences, which lex as operators that
use no resource, so nothing refused. The form's resources then lost the
image it draws, and the page lost the Type 3 font only the appearance
or the soft mask selects, with its glyphs. Each is now read with them
too, as this branch's other reads in the cleanup are; the appearances
still against the page's allowance.
Tests, each the by-reference form of one already on main:
- `an_image_a_type3_glyphs_form_with_parameters_by_reference_draws_is_kept`
- `a_type3_font_only_an_appearance_with_parameters_by_reference_selects_stays_on_the_page`
- `a_type3_font_only_a_soft_mask_with_parameters_by_reference_selects_stays_on_the_page`
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01AmsdeUCdTaD72jkDw2pJKY
2026-11-09 12:26:27 +01:00
bflatastic
9b57d7edd1
Merge #4434 : M11: PDF Optimizer can discard links to other documents (optimize.discard-external-refs)
2026-11-09 18:26:16 +07:00
bflatastic
d40c626b6e
Merge #5316 : M3: full screen plays page transitions and display times, and its keys and clicks go the right way ( #379 , #5315 )
...
# Conflicts:
# crates/ui-egui/src/canvas/tests.rs
2026-11-09 18:26:15 +07:00
bflatastic
3ec0a629d4
Merge #5508 : M12: edit attachment descriptions
...
# Conflicts:
# crates/automation/src/dispatch.rs
# crates/automation/src/json.rs
# crates/automation/src/tools.rs
# crates/engine/src/edit.rs
# crates/engine/src/edit/labels.rs
# crates/engine/src/edit/run.rs
# crates/organize/src/import/carry.rs
# crates/ui-egui/src/dialogs.rs
2026-11-09 18:25:40 +07:00
bflatastic
a0b791853c
Merge #4784 : M6: a radio option whose export value is a number selects its own button, and its XFA data holds the item (form.fill-checkbox-radio)
2026-11-09 18:24:54 +07:00
bflatastic
b96b8ee44d
Merge #4664 : M12: an XFA caption without a font of its own uses its field's (form.xfa-dynamic)
...
# Conflicts:
# crates/xfa/src/layout/measure.rs
# parity/acrobat-features.toml
2026-11-09 18:24:54 +07:00
bflatastic
d17159ef1e
Merge #5259 : M12: a PDF portfolio opens on its initial document and shows its files ( #1652 )
...
# Conflicts:
# crates/render/src/inspect.rs
# crates/render/src/lib.rs
2026-11-09 18:24:28 +07:00
bflatastic
e917cc2cc6
Fit the landed changes together
2026-11-09 18:24:27 +07:00
bflatastic
0d4fe7e313
Merge #4763 : M10: landscape sheets stay landscape on CUPS, with a test at each print path (rebases #3068 ; @zdblazer)
2026-11-09 18:23:58 +07:00
bflatastic
c17990f0ea
Merge #4662 : M12: an XFA template's use/usehref prototypes are resolved before it is parsed (form.xfa-dynamic)
...
# Conflicts:
# parity/acrobat-features.toml
2026-11-09 18:23:20 +07:00
bflatastic
dd72e2e672
Merge #2345 : M6: custom stamps can carry a line filled in when they are placed ( #1741 )
...
# Conflicts:
# ROADMAP.md
# crates/annot/src/lib.rs
2026-11-09 18:23:14 +07:00
bflatastic
3b3721405c
Merge #4401 : M6: a turned field keeps its place and its text runs along the turn ( #4296 )
2026-11-09 18:23:10 +07:00
bflatastic
6d1efb7646
Merge #4378 : M3: documents that hide the toolbar, menu bar or window controls open that way, with a key to bring them back (organize.initial-view)
...
# Conflicts:
# crates/engine/src/commands.rs
# crates/ui-egui/src/commands.rs
2026-11-09 18:23:10 +07:00
bflatastic
f0be783bd0
Merge #4608 : M12: XFA repeating rows lay out past 50, and tables in positioned containers repeat their rows ( #4607 , #4615 )
2026-11-09 18:22:55 +07:00
bflatastic
3394f3077b
Merge #4537 : XFA: fields and exclusion groups that must be filled in are Required
...
# Conflicts:
# crates/xfa/src/layout/draw.rs
# crates/xfa/src/layout/field.rs
# crates/xfa/src/layout/items.rs
# parity/acrobat-features.toml
2026-11-09 18:22:54 +07:00
bflatastic
c638edf9c7
Merge #2137 : M5: comment pop-up windows on the page, with connector lines (comment.popups, comment.connector-lines)
...
# Conflicts:
# ROADMAP.md
# crates/annot/src/info.rs
# crates/annot/src/lib.rs
# crates/annot/src/modify.rs
# crates/annot/src/tests.rs
# crates/automation/src/comments.rs
# crates/automation/tests/it/automation.rs
# crates/engine/src/comments.rs
# crates/render/src/inspect.rs
# crates/render/src/inspect/annotations.rs
# crates/render/src/inspect/model.rs
# crates/render/src/inspect/tests.rs
# crates/render/src/lib.rs
# crates/ui-egui/src/tools/comments/input.rs
# crates/ui-egui/src/tools/comments/paint.rs
# crates/ui-egui/src/tools/comments/tests.rs
# crates/ui-egui/tests/it/comments.rs
2026-11-09 18:22:50 +07:00
bflatastic
8183f96b37
Merge #5973 : fix(print,engine): read the page tree once when finding which pages' text reads up
...
# Conflicts:
# crates/print/src/tests.rs
2026-11-09 18:22:45 +07:00
bflatastic
ca9df2b5fe
Merge #4139 : Search: keep the match in the middle while a zoom is still on ( #3530 , builds on #3547 )
...
# Conflicts:
# crates/ui-egui/src/canvas/find.rs
# crates/ui-egui/src/canvas/tests.rs
2026-11-09 18:22:37 +07:00
bflatastic
6404602e63
Merge #5075 : fix(edit): Office export respects a form's /BBox and a page's re/W/n clip
...
# Conflicts:
# crates/edit/src/text/lines.rs
2026-11-09 18:22:16 +07:00
bflatastic
e767b244ee
Merge #5658 : M5: the text selection bar stays inside the pages' area ( #5577 )
...
# Conflicts:
# crates/ui-egui/src/canvas/selection.rs
2026-11-09 18:22:01 +07:00
bflatastic
697227f901
Merge #4517 : M12: run an XFA signature field's preSign scripts before it is signed and postSign after
...
# Conflicts:
# crates/engine/src/js.rs
# crates/engine/src/tests.rs
# crates/xfa/src/fixtures.rs
# parity/acrobat-features.toml
2026-11-09 18:21:41 +07:00
bflatastic
117f3b1102
Merge #4497 : M8: after Apply redactions, Save asks where and proposes the name with _Redacted (protect.redact-filename-suffix)
2026-11-09 18:21:20 +07:00
bflatastic
86c97aca30
Merge #4159 : fix(a11y): mark vector graphics and images as artifacts in autotag_text ( #4080 )
...
# Conflicts:
# crates/a11y/src/autotag.rs
2026-11-09 18:21:12 +07:00
bflatastic
b2cd7258af
Merge #3806 : Allow Ctrl+wheel zoom in an unfocused window ( #3736 )
...
# Conflicts:
# crates/ui-egui/src/canvas/tests.rs
2026-11-09 18:20:52 +07:00
bflatastic
d8dad6f9ef
Merge #4474 : M3: relative links resolve against the document's base URI, and a link is active only in its QuadPoints (view.follow-links)
2026-11-09 18:20:36 +07:00
bflatastic
4494642b05
Search reads ligatures through the page text's ligature_letters
2026-11-09 18:20:36 +07:00
bflatastic
70aa8e5c0c
Merge #4459 : M2: the standard 14 fonts fit the Euro to its standard width (view.render-pages)
...
# Conflicts:
# vendor/README.md
2026-11-09 18:19:55 +07:00
bflatastic
baa131de70
Merge #4433 : M2: zero-area fills and clips mark the pixels they touch (view.render-pages)
...
# Conflicts:
# vendor/README.md
# vendor/hayro-interpret/src/interpret/path.rs
2026-11-09 18:19:48 +07:00
bflatastic
db5fdcf9bc
Merge #4359 : M12: XFA enter and exit scripts run whenever a field gains or loses focus
...
# Conflicts:
# crates/engine/src/edit/run.rs
# crates/engine/src/js.rs
# crates/ui-egui/src/editing.rs
# crates/ui-egui/src/tools/forms_ui.rs
# parity/acrobat-features.toml
2026-11-09 18:19:39 +07:00
bflatastic
93e45776f2
Merge #4470 : M3: Find matches ligatures and words split by a line-end hyphen ( #4469 )
2026-11-09 18:19:30 +07:00
bflatastic
68abeedc57
Merge #3773 : M9: empty signature fields show a Sign tab, sized to the field
...
# Conflicts:
# crates/ui-egui/src/canvas/page_input.rs
2026-11-09 18:19:30 +07:00