100 Commits
Author SHA1 Message Date
aiongg 2ae1e915c9 fix(ui): comment composer visibility uses the shown rectangle 2026-10-24 12:13:22 +00:00
aiongg afa14c3b98 Merge integration batch A's review fixes 2026-10-24 08:26:10 +00:00
aiongg f9a179fee0 Merge integration batch B's review fixes 2026-10-24 08:26:10 +00:00
aiongg 70404ac310 Integration: format the review-fix tests (#4339) 2026-10-24 08:24:09 +00:00
aiongg 9595f5940c Integration: a script-opened panel reveals a background Inspector tab (#3580)
ShowPanel now queues the same Inspector reveal a user's panel choice does.
2026-10-24 08:24:01 +00:00
aiongg 82eedb6607 Integration: a retained-version optimize reports the later of header and catalog version (#3227)
Object streams raise the header to 1.5 over a lower catalog /Version; pdf_version now reports the version viewers read.
2026-10-24 08:21:14 +00:00
aiongg 29889fc1e0 Integration: list the attachment edit labels for translation (#1960)
"Attach {name}" and "Delete attachment {key}" were missing from EDIT_LABELS, so the translation-gap report left them out.
2026-10-24 08:20:44 +00:00
aiongg 1fb1877923 Integration: attachment_add reads its file through the size-capped reader (#1960)
attachment_add used an unbounded std::fs::read; it now uses read_input like the other file-reading tools, and the oversized-input test covers it.
2026-10-24 08:20:39 +00:00
aiongg be826a3bcd Integration: a short multi-line field accepts the line it draws (#4339)
The fit check required the padded height for every line; it now uses the bound the appearance applies, so a 16 pt field at 12 pt takes one line.
2026-10-24 08:17:01 +00:00
aiongg 06959df890 Integration: execMenuItem requests go through the request cap (#3580)
A script looping on app.execMenuItem could queue unlimited requests; they now follow the same count and byte limits as other requests.
2026-10-24 08:15:46 +00:00
aiongg b04257d5eb Integration: a typed Password-field value stays in the open document after Save (#3943)
Recording a save reopens the saved file, which carries no Password values; they are put back in memory only, so the next save still omits them.
2026-10-24 08:15:01 +00:00
aiongg 8021aee1f8 Integration: the edit composer stays visible while part of its comment is on screen (#4095)
Editing a large comment whose top-right corner was scrolled away opened a composer that was hidden and could not be cancelled. The card now stays, clamped into the document, while any part of the comment shows.
2026-10-24 08:14:45 +00:00
aiongg 2208dc16c8 Integration: cargo fmt 2026-10-24 07:32:52 +00:00
aiongg 7685882aa1 Merge integration batch C (track r3-t07) 2026-10-24 07:25:53 +00:00
aiongg 8ce5a3ec96 Merge integration batch A at #2648's updated head 2026-10-24 07:24:24 +00:00
aiongg 315454d3a9 Merge PR #2648 at its updated head
# Conflicts:
#	crates/engine/src/js.rs
2026-10-24 07:21:13 +00:00
aiongg 35f3fe027e Integration: #3694 a press beneath a menu or dialog does not end Select All
The reset uses pressed_page (unobstructed, pointer over the page) instead of the raw press origin; the test presses with a dialog open.
2026-10-24 07:20:42 +00:00
aiongg 2e561bb635 Merge integration batch B (tracks r3-t05, r3-t06) 2026-10-24 07:12:16 +00:00
aiongg 95ec6348c3 Merge upstream main into integration batch A
# Conflicts:
#	crates/ui-egui/tests/it/control.rs
#	crates/ui-egui/tests/it/forms.rs
2026-10-24 07:12:10 +00:00
aiongg 7733b619cf Integration: #3670's fan-out test allows for a loaded machine 2026-10-24 07:11:16 +00:00
aiongg a9fe3d4e7f Integration: drop the doc comment of the removed visit cap (#3670 × main) 2026-10-24 07:11:16 +00:00
aiongg 2a91f1d717 Integration: the page's decode budget owns the form count in redaction (#3670 × main)
#3670 raised the form depth limit to 50 and added its own 50,000-visit cap. Main's
per-page DecodeBudget (e2a677164) has the same 50,000-form limit, and the visit cap
fired first, so Apply removed the forms instead of refusing the page as main does.
The visit cap goes; the fan-out test expects the refusal, and the depth-limit
sanitization test builds its chain from MAX_DEPTH.
2026-10-24 07:11:16 +00:00
aiongg e05dc237bb Merge upstream main into the r3 batch
# Conflicts:
#	crates/ui-egui/tests/it/forms.rs
2026-10-24 07:11:15 +00:00
aiongg 2ffcd0f1d1 Merge PR #3694: Select All takes the whole document's text while scrolling continuously (fixes #2639) 2026-10-24 07:10:11 +00:00
aiongg deffc376cf Integration: #2588 keep XMP-only document information across full refreshes
Session::refresh_with_indexes fills title, author and the other fields from XMP as build_document does; the test applies an edit and an undo and checks they stay.
2026-10-24 07:10:11 +00:00
aiongg 91b6f7f172 Integration: #3670's fan-out test allows for a loaded machine 2026-10-24 07:06:18 +00:00
aiongg b232ed217c Merge PR #2588: M3: Document Properties shows a title and author stated only in XMP (#2373) 2026-10-24 07:00:29 +00:00
aiongg cededfaccb Integration: #1960 put the attachment_action doc line back above attachment_action 2026-10-24 07:00:29 +00:00
aiongg f053da3d93 Merge PR #1960: Attachments: attach a file and delete one (panel, edit, tools); duplicate names numbered as text
i18n ca, fi, hi, id, ko, ro, sq .tsv: kept both sides' rows (no duplicate keys).
2026-10-24 07:00:24 +00:00
aiongg 464dbd49e0 Integration: #3765 name the case-only comparison in the doc comments (NFC/NFD not compared) 2026-10-24 07:00:10 +00:00
aiongg 23d2e1c823 Merge PR #3765: Refuse an OCR batch whose inputs would write one output file
Cargo.lock: took main's.
crates/automation/src/a11y.rs: kept both sides (PR's helpers, then main's request_json doc comment).
2026-10-24 06:59:56 +00:00
aiongg 5fae5fa460 Merge PR #3056: fix(ui): the back arrows leave Edit as the Edit tab does
tests/it/control.rs: kept main's side (the PR's unrelated wait-loop hunk dropped, per the review's fix).
2026-10-24 06:59:47 +00:00
aiongg a954a96cb5 Merge PR #4041: fix: Issue #4020, Extract keeps the bookmarks of the pages it copies 2026-10-24 06:59:38 +00:00
aiongg 431d1c2364 Merge PR #3012: M11: Optimize keeps a JPEG's colour transform (#1201)
ROADMAP.md: kept both progress lines.
crates/optimize/README.md: PR's decoder sentence plus the target-version section from main.
Cargo.lock: auto-merged.
2026-10-24 06:59:38 +00:00
aiongg 9b986f8981 Integration: drop the doc comment of the removed visit cap (#3670 × main) 2026-10-24 06:59:28 +00:00
aiongg 9f56d9d2a9 Merge PR #4196: OCR: a recognizer panic or a dead worker ends the run (#3919)
crates/ui-egui/src/ocr_ui.rs: kept both sides in poll_ocr (poisoned-lock handling plus the automatic-run wait) and in the test module (one mod, both sets of tests); the 4196 test literal gets automatic: None.
2026-10-24 06:59:24 +00:00
aiongg 21eed36aa4 Merge PR #1609: M10: recognize a scanned page when Edit is turned on for it 2026-10-24 06:59:03 +00:00
aiongg 1a2178924e Integration: the page's decode budget owns the form count in redaction (#3670 × main)
#3670 raised the form depth limit to 50 and added its own 50,000-visit cap. Main's
per-page DecodeBudget (e2a677164) has the same 50,000-form limit, and the visit cap
fired first, so Apply removed the forms instead of refusing the page as main does.
The visit cap goes; the fan-out test expects the refusal, and the depth-limit
sanitization test builds its chain from MAX_DEPTH.
2026-10-24 06:57:51 +00:00
aiongg b4691a3a7c Integration: cargo fmt 2026-10-24 06:53:10 +00:00
aiongg b3efc422d9 Integration: comments tests use support::settle (#r3-t06 shared helper × r3-t0x tests) 2026-10-24 06:51:32 +00:00
aiongg ce684cd1d3 Merge track r3-t06 2026-10-24 06:50:31 +00:00
aiongg 6a206a0a2e Merge track r3-t05 2026-10-24 06:48:48 +00:00
aiongg 692f34fce2 Merge track r3-t04 2026-10-24 06:40:21 +00:00
aiongg 9705e7a6c1 Merge track r3-t03 2026-10-24 06:39:33 +00:00
aiongg a05dbdcb1e Merge track r3-t02 2026-10-24 06:38:46 +00:00
aiongg 4754024c68 Merge track r3-t01 2026-10-24 06:38:46 +00:00
aiongg b3e3a19d83 Integration: #3227 parity evidence paths under tests/it 2026-10-24 06:37:54 +00:00
aiongg c79c15791e Integration: #4147 test literals take Annotation::no_rotate (#3016) and context_menu's can_modify 2026-10-24 06:35:31 +00:00
aiongg 52f41f50d1 Integration: cargo fmt 2026-10-24 06:34:49 +00:00
aiongg 15a9f29823 Integration: #4266 restore the color field in #4230's AddedText literal 2026-10-24 06:32:54 +00:00
aiongg aedf339fb8 Merge PR #4181: M11: PDF Optimizer Clean Up stores LZW streams with Flate
Conflicts: ATTRIBUTION.toml: took main's side (hashes recomputed after the merges). crates/optimize/src/lib.rs, crates/automation/src/lib.rs, tools.rs: Settings and tool schema keep object_streams (#3227) and lzw_to_flate (#4181); doc_optimize description names both options. crates/optimize/tests/optimize.rs: both sides' imports and tests kept.
2026-10-24 06:26:33 +00:00
aiongg bfe58a89ef Integration: #4266 char_spacing in #4230's AddedText literal 2026-10-24 06:25:59 +00:00
aiongg 1d270206be Merge PR #3227: M11: target PDF version and object streams option in PDF Optimizer
Conflicts: docs/roadmap.md: all status lines kept, M10 row from main, M11 row with #3227's two sentences. parity/acrobat-features.toml: save-with-object-streams entry from #3227 with its test paths under tests/it/.
2026-10-24 06:25:55 +00:00
aiongg 4ad99af221 Merge PR #4380: M2: a non-embedded CIDFont's fallback request carries its descendant's font descriptor
Conflicts: vendor/README.md: hayro-interpret row keeps patches (55) to (57) and #4380's (58), with their test lists.
2026-10-24 06:25:24 +00:00
aiongg c53757939f Merge PR #4338: M12: flowed XFA subforms are drawn with their border and fill
crates/xfa/src/tests.rs: both sides' appended tests kept.
parity/acrobat-features.toml: form.xfa-dynamic evidence and notes: both sides' insertions.
2026-10-24 06:24:41 +00:00
aiongg 46772a228d Merge PR #4374: M2: a substitute for a non-embedded font keeps its glyph shapes at wider widths
Conflicts: vendor/README.md: hayro-interpret row keeps patches (55), (56) and #4374's (57), with their test lists.
2026-10-24 06:24:39 +00:00
aiongg a637c39435 Merge PR #4319: M12: XFA borders and rectangles with rounded corners are drawn rounded
parity/acrobat-features.toml: form.xfa-dynamic evidence: both sides' entries; notes: both sides' insertions.
2026-10-24 06:24:30 +00:00
aiongg 014d9f4405 Merge PR #4147: Flatten comments from the page's right-click menu and the Comments panel's menu 2026-10-24 06:24:20 +00:00
aiongg eac3ad6e0f Merge PR #4068: i18n(fi): translate the 64 labels left in English after #2210
Conflicts:
- ATTRIBUTION.toml: fi.tsv source: main's text plus the PR's added sentence; the PR's sha256 line dropped (translation catalogs carry none on main).
- ATTRIBUTION.md: main's rows, fi row updated to the same source text.
2026-10-24 06:24:19 +00:00
aiongg 880723e3af Merge PR #4266: M7: added text takes character spacing from Format text
crates/engine/src/lib.rs: union of the added:: re-exports (paste_place/paste_rect from #4230, CHAR_SPACING_LIMIT).
crates/ui-egui/src/content_ui.rs: editor keeps #4178's anchored width and horizontal_align and #4266's spacing layouter; spaced_job takes the alignment so the custom layouter keeps it.
crates/ui-egui/tests/it/content.rs: kept both tests.
2026-10-24 06:24:10 +00:00
aiongg 541c82d59f Merge PR #4318: M12: links in XFA rich text become clickable links
crates/xfa/src/tests.rs: both sides' appended tests kept.
parity/acrobat-features.toml: form.xfa-dynamic evidence and notes: both sides' insertions (word-level merge).
2026-10-24 06:24:04 +00:00
aiongg 0a20a18787 Merge PR #4371: M2: Invisible annotations of unknown types and popups don't paint
Conflicts: vendor/README.md: hayro-interpret row keeps #4345's patch (55) and #4371's patch (56), with both test lists.
2026-10-24 06:24:03 +00:00
aiongg 97a0b31c2c Merge PR #4058: M12: type or pick an architect's 1:N drawing scale in the Measure panel, applied at once
Conflicts:
- crates/ui-egui/src/i18n/mod.rs: kept main's side (main dropped the per-language translation tests; the PR's drawing_scale_labels_are_translated_in_every_catalog is not carried over).
- parity/acrobat-features.toml: measure.distance evidence: kept main's paths (tests/it/), appended the PR's two new entries.
2026-10-24 06:23:49 +00:00
aiongg 761353775b Merge PR #4317: M12: round XFA check buttons draw a round background and border 2026-10-24 06:23:48 +00:00
aiongg f017ca3b78 Merge PR #3580: M6: form buttons show the side panels (app.execMenuItem)
crates/js/src/lib.rs: module doc app/util list has execMenuItem and scand; install() doc comment from main.
crates/js/src/tests.rs, crates/engine/src/tests.rs: both sides' appended tests kept.
parity/acrobat-features.toml: js notes: execMenuItem wording plus scand wording.
2026-10-24 06:23:47 +00:00
aiongg 80f9555cf8 Merge PR #3786: M5: the arrow keys move the selected comment 2026-10-24 06:23:32 +00:00
aiongg a6351a5328 Merge PR #2195: M3: restore last view settings when reopening documents (#1767)
Conflicts:
- ROADMAP.md: progress log, kept both lines.
2026-10-24 06:23:31 +00:00
aiongg f71a305915 Merge PR #4230: M7: paste added text boxes and images in the engine and through content_copy (#2636)
ROADMAP.md, docs/roadmap.md: kept both sides' status and progress-log lines; did not restore the older M14 status line that the branch had already trimmed.
2026-10-24 06:23:24 +00:00
aiongg a7778f92f1 Merge PR #4362: M5: comments without an appearance draw their /Border dashes, Ink dashes and the caret's ¶ (ISO 32000-2 Tables 166, 168, 183) 2026-10-24 06:23:19 +00:00
aiongg 581faa876a Merge PR #4349: M5: stamps without an appearance draw the stamp they name (ISO 32000-2 Table 184) 2026-10-24 06:23:15 +00:00
aiongg 4b29f18bfb Merge PR #4303: M3: a link without a position keeps the reader's place (ISO 32000-2 §12.3.2.2) 2026-10-24 06:23:11 +00:00
aiongg 4e335dd6ef Merge PR #4096: feat(ui): the secured-document notice can be turned off for good (#4035)
Conflicts:
- ATTRIBUTION.toml: kept main's side; translation catalogs carry no sha256 on main, so the PR's sha256 lines for them are dropped.
2026-10-24 06:23:06 +00:00
aiongg 8a64b65e4f Merge PR #4330: M8: redact labelled Italian international slash numbers
ROADMAP.md: kept both progress-log lines, newest first by position (HEAD's #4280 line, then this one).
2026-10-24 06:23:03 +00:00
aiongg 5990381c9c Merge PR #3549: M6: util.scand reads dates as another viewer does 2026-10-24 06:22:59 +00:00
aiongg 3f622963f0 Merge PR #4299: Omit minus sign when FormCalc Format() rounds to zero 2026-10-24 06:22:56 +00:00
aiongg bcbd9cbf4e Merge PR #4287: M12: XFA text is measured at its standard-14 font's own widths
parity/acrobat-features.toml: form.xfa-dynamic evidence: both sides' entries; notes: PR's metrics sentence replaces 'metrics are approximate' on top of main's text (word-level merge).
2026-10-24 06:22:55 +00:00
aiongg 084497436b Merge PR #4345: M2: a DeviceN colour with twelve inks paints, and a colour that can't be evaluated no longer blanks the page (ISO 32000-2 §8.6.6.5) 2026-10-24 06:22:51 +00:00
aiongg 8dda3d50b9 Merge PR #4316: M7: a bold paragraph's stand-in font no longer turns earlier edits bold (#4280) 2026-10-24 06:22:51 +00:00
aiongg 9c47dd36cf Merge PR #4331: M10: apply soft-mask Decode intervals to image exports
Conflicts: ROADMAP.md, docs/roadmap.md: both sides' status, progress and change-log lines; M10 row has the soft-mask sentence added to ours, M11 row from the earlier merge.
2026-10-24 06:22:48 +00:00
aiongg f2c133b987 Merge PR #4258: M7: a batch of content edits refreshes the added content and page marks 2026-10-24 06:22:48 +00:00
aiongg 1b404e6956 Merge PR #4095: Comments: the composer hides while its comment is scrolled away (#4021)
Conflicts:
- crates/ui-egui/tests/it/comments.rs: kept both PRs' new tests (adjacent additions).
2026-10-24 06:22:46 +00:00
aiongg 5cb74eeb69 Merge PR #4217: M7: edited text keeps every space typed (#4199, #3797)
crates/edit/src/tests.rs: both sides appended tests at the end; kept both.
Cargo.lock: unchanged from base (the PR's ctutils bump did not apply).
2026-10-24 06:22:45 +00:00
aiongg 481b91f112 Merge PR #4323: test(ui): recovery idle tests make folders that never share a name 2026-10-24 06:22:37 +00:00
aiongg 5ee65440c0 Merge PR #4242: Tests: UI tests wait for background work by time, not frame count (#4186) 2026-10-24 06:22:36 +00:00
aiongg 6ed0082a3e Merge PR #4211: feat(ui): add 'Split document...' to page thumbnail context menus 2026-10-24 06:22:35 +00:00
aiongg 2d8e21e08e Merge PR #3750: feat(organize): Extract pages takes typed page ranges (#3593) 2026-10-24 06:22:35 +00:00
aiongg 8ff6c8af31 Merge PR #2748: M10: a booklet decides two-sided itself, as Acrobat does (#2707)
Conflicts: crates/automation/src/printing.rs: kept job_duplex (#2748) next to bad; #4161's paper_named/spool_job unchanged.
2026-10-24 06:22:34 +00:00
aiongg ad54ef3a5f Merge PR #3970: M3: resize and move the window again right after a resize or move (Wayland) 2026-10-24 06:22:33 +00:00
aiongg 8a0319a24f Merge PR #4368: M6: check boxes, radio buttons and push buttons without an appearance are drawn, and comb fields show their cells
crates/forms/src/tests.rs: append conflict, kept both tests.
parity/acrobat-features.toml: form.fill-text-field evidence is the union; notes keep HEAD's text plus the comb-cells sentence.
2026-10-24 06:22:30 +00:00
aiongg c097653162 Merge PR #4329: M10: preserve table text from covered export slots
Conflicts: ROADMAP.md, docs/roadmap.md: both sides' status, progress and change-log lines; M10 row has both sentences. parity/acrobat-features.toml: export.docx evidence has both tests, notes has both statements.
2026-10-24 06:22:30 +00:00
aiongg b9f5ef6662 Merge PR #4198: fix(audit): covered_text reports the words under the cover, not the whole line 2026-10-24 06:22:30 +00:00
aiongg a84a255e4e Integration: #4178 doc comment back above mode_tab 2026-10-24 06:22:30 +00:00
aiongg d626a4ae72 Merge PR #2190: M3: a fresh install follows the desktop's appearance (#1248) 2026-10-24 06:22:29 +00:00
aiongg ee989ab5ca Merge PR #3016: M5: sticky notes stay upright where they are placed on rotated pages (NoRotate, #2583)
Conflicts:
- parity/acrobat-features.toml: comment.note: kept main's icon notes text, added the NoRotate sentence and the PR's three evidence entries.
- vendor/README.md: kept main's rows; added the PR's hayro-interpret patch as (53) with its test (53).
2026-10-24 06:22:25 +00:00
aiongg 321d59aec8 Merge PR #4178: fix(ui): the added-text editor keeps the box's alignment 2026-10-24 06:22:21 +00:00
aiongg 9230cb826d Merge PR #4352: Reject open-ended page range on a document with no pages 2026-10-24 06:22:19 +00:00
aiongg 496e3b3308 Merge PR #4312: M10: preserve page artwork when printing annotations 2026-10-24 06:22:19 +00:00
aiongg f9f08017f0 Merge PR #4111: fix(edit): Delete removes the selected paragraph or objects in Edit text
crates/ui-egui/src/object_ui.rs: main removed the tests module's translation test; kept the PR's two
new delete tests and dropped the translation test.
2026-10-24 06:22:17 +00:00
aiongg c24e90b59c Merge PR #3985: M6: a document script that throws no longer stops the form's other scripts (#3940)
crates/automation/src/tools.rs: js_run description: both sides' wording merged.
2026-10-24 06:22:15 +00:00
aiongg 0041a3b10e Merge PR #4161: M10: every paper size reaches the printer, from the dialog and doc_print (#3752)
Conflicts: ROADMAP.md: kept both progress-log lines.
2026-10-24 06:22:15 +00:00