Commit Graph
4115 Commits
Author SHA1 Message Date
aiongg 7e539fee8d Integration: #1002 Cmd borrows the last-used selection tool
Holding Cmd/Ctrl with a non-selection tool borrows whichever of Selection and Direct Selection was chosen last, instead of a fixed tool per tool family. The session records the last chosen selection tool; the busy() guard stays.
2026-10-16 04:33:07 +00:00
aiongg 25aa75a6e5 Integration: renaming a character style updates the drop cap style once 2026-10-16 04:29:27 +00:00
aiongg bd99e59e81 Integration: data merge checks the read roots before the file size 2026-10-16 04:29:27 +00:00
aiongg 1014d841ac Integration: a dropped file without an extension is recognised from its first bytes 2026-10-16 04:29:27 +00:00
aiongg e8aadde385 Integration: start-screen previews read only the zip directory and the preview entry 2026-10-16 04:29:27 +00:00
aiongg 94d21edfa1 Integration: sentence selection tests return; selecting around a point drops the pending typing format 2026-10-16 04:29:27 +00:00
aiongg dd71077cef Integration: the New Document test checks that Mobile presets have no primary text frame 2026-10-16 04:29:27 +00:00
aiongg 0132523396 Integration: column counts and list numbers have their own captions; pt-BR and Arabic Pages menu rows 2026-10-16 04:29:27 +00:00
aiongg b0ed052562 Integration: a document preview is bounded by what it inflates to 2026-10-16 04:29:27 +00:00
aiongg 6a22e38b1e Merge PR #1002: Tools: Cmd held with another tool borrows the Selection tool for one gesture
tooling.rs: kept #366's IME handling (with_ctx passes the session; a press ends the composition first) and #1002's borrowed tool, which pointer, key, overlay, cursor and wants_text reach through gesture_tool().
2026-10-16 04:28:48 +00:00
aiongg 3021a8f893 Merge PR #1075: Thread the loaded text cursor into a text frame inside a group
crates/tools/src/tests.rs: the branch's tests, plus the PR's new loaded_text_cursor_threads_into_a_frame_inside_a_group.
2026-10-16 04:26:31 +00:00
KnottyDyesandClaude Opus 5.5 0613948d3d SVG: a font family named in any case finds the installed font
DesignCraft matched an SVG font-family case-insensitively when importing
the installed faces, but the final fontdb query compares names exactly,
so "DeJaVu SaNs" loaded DejaVu Sans and then set the text in the serif
fallback (Source Serif 4) without a word. Text frames already accept any
case. The SVG font selector now runs usvg default query with each named
family spelled the way the font database spells it; family order,
generics, weight, stretch and style are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BSB7fMQUccqFQekksDGWpo
2026-10-15 22:25:04 -06:00
KnottyDyes 5c1aea7533 Place: an explicit x, y, spread or width puts the image in a new frame
Explicit image placement leaves selected frames untouched; an explicit frame still wins. Null placement parameters behave like omitted values.

Reject nonnumeric, nonfinite and nonpositive image widths before editing. Cover rejection without document changes, valid sizing and null selection behavior with regression tests.
2026-10-15 22:23:46 -06:00
aiongg e082e69b03 Integration: #1081 the proxy test fills the Color Picker's rgb, model and edited fields, as the batch's picker reads them 2026-10-16 04:22:38 +00:00
aiongg 7979a417fe Integration: cargo fmt 2026-10-16 04:21:41 +00:00
aiongg 4ebcd78a03 Integration: #1027 test passes the string slices without a needless borrow (clippy) 2026-10-16 04:21:33 +00:00
aiongg 3f9824906f Merge PR #1029: docx: an explicit off imports as off 2026-10-16 04:18:38 +00:00
aiongg dc39c38471 Merge PR #988: Swatches: Load Swatches numbers repeated .ase names and names unnamed colors by value 2026-10-16 04:18:37 +00:00
aiongg 5d2c94cb57 Merge PR #985: End the RTF \uN fallback skip at the end of its group 2026-10-16 04:18:37 +00:00
aiongg f649f3cc45 Integration: #1099 the New Document preset test scrolls to A4, which sits below the poster sizes 2026-10-16 04:18:32 +00:00
aiongg d04d4de8fe Integration: coordinates must be finite (#1050)
file.place, place.drop, placed media and Fixed Width text frame columns refuse a rect that overflows to infinity or NaN. Saving refuses a document with non-finite item geometry before writing anything, so a file that won't load is never written.
2026-10-16 04:18:29 +00:00
aiongg 68b24da5c9 Integration: #1013 German table drops the 8 rows the branch already has and keeps "Anschnitt:" for Bleed: 2026-10-16 04:13:26 +00:00
aiongg 4d6df8ef36 Merge PR #1013: i18n(de): clearer terms, missing strings, six hard-coded dialog labels
crates/ui-egui/src/i18n/de.rs: keep both sides' rows; the next commit removes the keys this leaves twice.
2026-10-16 04:13:23 +00:00
aiongg 2f948fa7e2 Merge PR #1079: Color Theme: extract a placed image palette and add it to Swatches
crates/ui-egui/src/dialogs.rs: the branch's dialog body is laid out differently; the Color Theme body goes into its match beside Text Frame Options, and its OK label into the branch's translated labels.
crates/ui-egui/src/menus.rs: keep the branch's Effects dialog opener and add the Color Theme opener.
crates/ui-egui/src/panels/swatches.rs: keep both menu rows (Swatch Options… from #416, Color Theme…).
crates/tools/src/tests.rs: the PR's Graphic literal names clip, wrap and fill.
docs/agents.md: keep both sections.
ROADMAP.md: the PR's line moves under "Newest first."; its copy of an existing 2026-10-13 line is dropped.
2026-10-16 04:12:13 +00:00
aiongg 1e149e38e0 Integration: cargo fmt 2026-10-16 04:11:37 +00:00
aiongg 52cf755179 Merge PR #1070: Table of Contents: page number and separator character styles, Sort Entries in Alphabetical Order
crates/engine/src/tests_idml.rs: keep both new tests.
crates/ui-egui/src/i18n.rs: keep both sides' rows.
2026-10-16 04:10:56 +00:00
aiongg 7ff9752805 Integration: a WWS family that is also the legacy family name finds the optical-size face 2026-10-16 04:09:44 +00:00
aiongg 21b2e30f93 Integration: #1068 Convert Rows descriptions name the table target (story, table, rows/row, cols/col) 2026-10-16 04:09:23 +00:00
aiongg 42eaf774e9 Merge PR #1068: Table › Convert Rows › To Header, To Body and To Footer
crates/engine/src/cmd/table.rs: add the PR's three commands before the branch's select commands, which keep their target descriptions (#803).
docs/gaps.md: keep the branch's text; Convert Rows leaves the list of missing menu items.
2026-10-16 04:08:22 +00:00
aiongg 746ccad1f3 Integration: #1076 a held-open tool flyout survives its release, and Esc closes the flyout without switching tools 2026-10-16 04:08:22 +00:00
aiongg ae544f8c05 Integration: cargo fmt 2026-10-16 04:08:00 +00:00
aiongg 6e4f122b8c Merge PR #1100: Placed greyscale and bitmap images take the swatch applied to them (IDML, screen, PDF)
Graphic literals (cli perf, doc assets/item, engine datamerge/export/file/links/mathexpr/media/table/sample, epub, format, pdf, pptx, render, tools, ui-egui properties, and tests): name the branch's clip and wrap (#561, #381) and the PR's fill.
crates/doc/src/item.rs: Graphic keeps wrap and gains fill.
crates/idml/src/import.rs: read the image swatch, then the branch's styled FrameFittingOption lookup; the graphic keeps its wrap.
crates/idml/src/tests/assets.rs: keep both new tests.
crates/render/src/lib.rs: keep #362's crop-box sizing of placed PDFs and colour the resulting pixmap.
crates/render/tests/colorize.rs, crates/epub/tests/grouped_reading_order.rs, crates/compose/src/tests.rs: literals name the branch's Asset and Graphic fields.
crates/pdf/src/export.rs: the soft mask interpolates by the standard's raster mode (the branch has no per-exporter interpolate switch).
docs/gaps.md, docs/target-app-parity.md: status lines list both sides' changes; gap text keeps the clipping-path items and adds the image swatch.
2026-10-16 04:07:57 +00:00
aiongg e75664bced Merge PR #1076: Tools: a tool group's flyout closes on Esc and on a click outside it, as InDesign's 2026-10-16 04:07:44 +00:00
aiongg d0caaaf344 Integration: #1046 double-clicking the preflight count keeps an open Preflight panel open (show_preflight) 2026-10-16 04:07:39 +00:00
aiongg 7593799a07 Merge PR #1046: UI: double-clicking the status bar's preflight count shows the Preflight panel 2026-10-16 04:07:14 +00:00
aiongg 335f25da06 Integration: #1035 Preflight Panel… shows the panel when it is already open instead of closing it; errors go to the status bar 2026-10-16 04:07:14 +00:00
aiongg c717492643 Merge PR #1035: The status bar's error count opens the Preflight panel
Conflicts:
- crates/ui-egui/src/chrome.rs: took #1035's count menu, with the branch's singular/plural rule (category_first) in its label.
2026-10-16 04:06:39 +00:00
aiongg be8c85705c Integration: #1022 style panels closed from the dock reopen in the dock, not floating 2026-10-16 04:06:15 +00:00
moppeeer a254f0e6e0 Integration: #384 rebreak check (from #1086 by moppeeer)
Past the estimated line slots the breaker assumes the whole column; the
rebreak check compares against that fallback too, so lines beside a wrap
object stay inside their segments.

(cherry picked from commit 94a06ed881)
2026-10-16 04:05:57 +00:00
aiongg b83a9712f0 Merge PR #1022: Window > Paragraph Styles opens the floating Character Styles | Paragraph Styles group, as InDesign does
Conflicts:
- crates/ui-egui/src/panel_docking.rs: kept #1021's window.panel.closeGroup and #1022's floating-group branch in command().
- crates/ui-egui/src/panel_docking_tests.rs: kept both sets of tests.
2026-10-16 04:05:41 +00:00
aiongg 2d66c3c832 Integration: #1012 Digits choices keep the reference names Arabic, Hindi and Farsi with sample figures; parity doc names the Character panel and Character Style Options 2026-10-16 04:05:32 +00:00
aiongg 92819a4d69 Integration: #1021 Minimize runs window.panel.layout, so scripts and the control channel reach it too 2026-10-16 04:05:27 +00:00
aiongg 3328e03f32 Merge PR #1021: Panel tabs: InDesign's Close, Close Tab Group, Minimize and Collapse to Icons
Conflicts:
- crates/ui-egui/src/i18n/{ar,de,it,ja,ka,pt_br,uk}.rs: kept both sides.
2026-10-16 04:05:10 +00:00
aiongg 3d0b778f53 Merge PR #1012: Text: Digits setting in the Character panel and character styles; page numbers and list numbers follow it
Conflicts:
- crates/compose/src/shape.rs: typed figures and page-number markers both go through #1012's digit_mode; the batch's inline digits block and its second mapping of the marker text are gone.
- crates/compose/src/lib.rs: the list label keeps the batch's label_chars and prepend_label; it takes the Digits of the paragraph's first run unless the number's character style sets its own.
- crates/compose/src/tests.rs: kept page_numbers_take_the_digits_option and added #1012's test.
- crates/ui-egui/src/i18n.rs: kept the batch's French strings and added the Digits: row.
- crates/ui-egui/src/panels/properties.rs: the always-shown Digits row is followed by the batch's two-column Size, Kerning, Baseline, Leading and Tracking layout.
2026-10-16 04:05:06 +00:00
aiongg 904c518efb Integration: #1044 leaving Presentation puts back the view it was entered from 2026-10-16 04:04:57 +00:00
aiongg 4a67187758 Merge PR #1044: View: Presentation shows one spread fitted to the screen; arrow keys and clicks go through the spreads
Conflicts:
- crates/ui-egui/src/menus.rs: kept #503's Esc branch first, then #1044's spread-stepping keys.
2026-10-16 04:04:17 +00:00
aiongg 1ad5c18ef8 Integration: #1011 axes with an inverted range get no slider; a failed edit.preview closes the preview it opened 2026-10-16 04:04:01 +00:00
aiongg 6f12a98543 Merge PR #1043: Layout: First/Previous/Next/Last Page and Next/Previous Spread, with InDesign's shortcuts
Conflicts:
- crates/ui-egui/src/i18n.rs: kept both sides.
2026-10-16 04:03:57 +00:00
aiongg 499f5f27c6 Merge PR #1001: Importers: XML element nesting and DTD group nesting are bounded (#712)
crates/engine/src/dtd.rs: keep the branch's version; #319 already bounds DTD group nesting (with the same limit of 64) along with the entity budget and matching fixes, so this PR's DTD part is dropped. The XML element limits are taken.
2026-10-16 04:03:53 +00:00
aiongg 4aeda523b6 Integration: #1027 composite-font scales are checked after the percent conversion 2026-10-16 04:03:45 +00:00