Windows prints through the system dialog at the document's paper; Linux through the desktop portal, the dialog's choices laid out by Ely. Round 3 findings fixed without a further review, as the rules say. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2.7 KiB
FAIL
-
crates/ely-platform/src/print/win.rs:287 — Windows prints annotations using screen visibility instead of their print flags. Passing the real worker's print copies through Microsoft Print to PDF returns
Ok(true)for both a Square annotation with/F 0(not printable) and one with/F 36(Print + NoView), but the first prints 8,100 red pixels and the second prints none; the/F 4control prints correctly (.work/r76-review-r3/windows-render.log,worker-probe.log). These flags explicitly distinguish screen visibility from printing (PDF reference, Table 8.11). Render with print semantics, or prepare a copy containing only flattened printable appearances before using the screen renderer. Add rendered Windows regressions for both flags throughprint_copy. -
crates/ely-platform/src/print/linux.rs:69; crates/ely-platform/src/print/linux/sheets.rs:168 — Odd/even selection is applied locally and then applied again by the GTK/CUPS backend through the unchanged print token. For a four-page document with Even selected, the exact compositor submits original pages
[2, 4]; the real GTK 3.24.52 CUPS backend still putscups-page-set=evenon its job (.work/r76-review-r3/linux-probe.log,gtk-cups.log). CUPS therefore selects only the second submitted sheet, losing original page 2. The portal retains the chosen settings, and GTK forwards page-set to CUPS. Coordinate manual processing with backend processing so each setting is applied once, and cover the real CUPS backend as well as print-to-file; the current fake portal only records the supplied bytes. -
crates/ely-platform/src/print/linux/sheets.rs:40 —
Shown::ofuses CropBox without intersecting it with MediaBox, expanding the printed page and exposing clipped content. A PDF with MediaBox[0 0 612 792], CropBox[0 0 700 792], and a red square at x=650–680 opens withdamaged=false; the worker's preview and print copy show a 612×792 page with only the interior blue control. Linux composition instead produces 700×792 and reveals the additional 900 red pixels (.work/r76-review-r3/render-comparison.log). PDF boundaries extending beyond MediaBox must be reduced to their intersection (PDF reference, §8.6). Use that effective rectangle consistently for sizing, placement, and the form's clipping box, with a rendered regression proving the outside content stays clipped.