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