Commit Graph
2702 Commits
Author SHA1 Message Date
moppeeerandClaude Opus 5.5 3d91e64605 New Document: a tab shows its first preset; Saved starts with [Default], as in InDesign
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 17:18:43 +02:00
moppeeerandClaude Opus 5.5 e2ad5cafa2 UI: double-clicking the status bar's preflight count shows the Preflight panel
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:57:42 +02:00
moppeeerandClaude Opus 5.5 32146348b8 UI: Tab, Shift+Tab and Presentation hide flyout and floating panels too
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:43:38 +02:00
seanth bed340cb3f Merge branch 'storytold:main' into drop-cap-size 2026-10-15 10:34:23 -04:00
moppeeerandClaude Opus 5.5 75d3e528ff View: Presentation shows one spread fitted to the screen and goes through spreads with arrow keys and clicks
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:32:52 +02:00
moppeeerandClaude Opus 5.5 e001b41221 Layout: First/Previous/Next/Last Page and Next/Previous Spread with InDesign's shortcuts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:25:51 +02:00
NetterSilverandClaude Haiku 5.5 61d625bd90 Keep '-' after an RTF control word when no digit follows
Found while testing crates/textimport/src/rtf.rs:160

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 16:23:55 +02:00
sanyamsingh001andCodex f9bd971fff Reject threading that would create linked-story ancestor cycles
Co-Authored-By: Codex <codex@openai.com>
2026-10-16 00:00:19 +10:00
NetterSilverandClaude Haiku 5.5 61d5f3a1ef Fix \rightarrow closing a \left fence early in math expressions
Found while testing crates/engine/src/math.rs:393

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:36:29 +00:00
midasmatterhorn 937e948a3d docx: an explicit off imports as off
ST_OnOff (ECMA-376 17.17.4) is a boolean plus the words on and off, but
the toggle reader only counted 0/false/none as off — so <w:b w:val="off"/>
(a legal spelling written by non-Word producers) imported as bold, and
the same for <w:i>, <w:strike>, <w:caps>, <w:isLgl> and <w:u>.

Add "off" to both off-lists. Regression test:
off_valued_toggles_stay_off — on main the off run imports bold; with the
patch it stays regular and an on run stays bold.
2026-10-15 15:54:09 +03:00
midasmatterhorn 46a914dc4c idml: one unusable CJK metric no longer refuses the whole file
Composite-font and mojikumi metrics were taken from the file with no
sanity check, and Document::check rejects a zero, NaN or infinite
relative_size / horizontal_scale / vertical_scale / baseline_shift — so
one attribute anywhere in the package (RelativeSize="0",
BaselineShift="NaN") failed the import with "invalid composite font
metrics" and left the file unopenable. Every neighbouring number in this
importer already filters; the metrics now do too and fall back to a
usable value.

Regression test: unusable_cjk_metrics_do_not_refuse_the_whole_file —
fails on main with Invalid("invalid composite font metrics: Rubies"),
passes with the fallback.
2026-10-15 15:42:25 +03:00
pepen ba0b0ec110 fix(ui): the status bar's error count opens the Preflight panel
The "N errors ▾" text in the status bar was a plain label. As in
InDesign it is now a menu; its Preflight Panel… entry shows the panel
(`window.panel {panel: "preflight"}`).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 533ba782643314e5841fb8bb58cd3af4bf2dd9ae)
2026-10-15 14:38:33 +02:00
pepen 33c670671c fix(snap): objects snap to the bleed guide
Moving, resizing and drawing snapped to page edges, margins, columns and
ruler guides but never to the bleed guide. `Spread::bleed_rect` now holds
the bleed rectangle (shared by the canvas, which drew it with its own
copy of the rule), and the guide pass offers its four sides.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit ad7a78d7439a906ab3545ff98801ee37b15be127)
2026-10-15 14:38:32 +02:00
moppeeerandClaude Opus 5.5 45a6cc54b9 New Workspace: Capture Panel Locations and Menu Customization, as InDesign's
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 14:12:42 +02:00
moppeeerandClaude Opus 5.5 4e7c49b36b Window > Paragraph Styles opens the floating Character Styles | Paragraph Styles group
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 14:04:38 +02:00
moppeeerandClaude Opus 5.5 080534b09a Panel tabs: InDesign's Close, Close Tab Group, Minimize and Collapse to Icons
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:53:19 +02:00
moppeeer dba8774a13 Merge origin/main into codex/font-menu 2026-10-15 13:26:37 +02:00
pepen ffc0aa3629 feat(ui): overset mark on every overset frame, groups included
With frame edges shown, every text frame that ends an overset story
carries the red mark at its out port, selected or not and inside
groups too. InDesign marks only the selected frame, so an overflowing
label inside a grouped object stayed invisible until Preflight.
Hidden frames and hidden layers are skipped; the group walk is bounded.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit d9ef96dd4b8189b423b4fc32bbb4bf6e3c5c6727)
(cherry picked from commit b60500660ba1dd02bd5c09dd35e0e3238b6ae21b)
2026-10-15 13:15:54 +02:00
pepen 3fa4d72d67 fix(ui): text frames inside a selected group show their ports
A selected group drew no in/out ports for the text frames in it, so an
overset frame inside a group had no red mark. The selection walks groups
(bounded depth) and draws each nested text frame's ports with the group's
transform.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 17a3cf9bd1c695a585e94fce125ed9d3a3a5929d)
2026-10-15 13:15:54 +02:00
moppeeer 2da46a8a3a Merge origin/main into codex/gradient-panel-layout 2026-10-15 13:04:12 +02:00
moppeeer 7242c4508f Merge origin/main into codex/new-gradient-swatch 2026-10-15 12:54:34 +02:00
moppeeer 78997e391a Merge origin/main into codex/text-frame-options-layout 2026-10-15 12:46:27 +02:00
moppeeer b3fb92a97f Merge origin/main into codex/content-handles 2026-10-15 12:38:07 +02:00
moppeeer 8ca022a11d Merge origin/main into codex/ungroup-real-groups 2026-10-15 12:29:01 +02:00
moppeeer c8cbe0a0dc Merge origin/main into codex/effects-dialog 2026-10-15 12:16:04 +02:00
moppeeer bfe7ba75b7 Merge origin/main into codex/paste-svg-paths 2026-10-15 12:07:55 +02:00
moppeeer e9d3effe65 Merge origin/main into codex/transform-content 2026-10-15 12:04:06 +02:00
moppeeer a14acea3a4 Merge origin/main into codex/swatch-popup-tint 2026-10-15 12:00:15 +02:00
moppeeer 12a41f69db Merge origin/main into codex/document-setup-dialog 2026-10-15 11:55:59 +02:00
danielwbittner-hubandClaude Opus 5.5 3c2b835e58 i18n(de): clearer terms, strings added since the German table, six hard-coded dialog labels
German terminology made consistent and easier to understand: Anschnitt for
bleed (Beschnitt already meant crop), Vorlagenseite for parent pages,
Intelligente Hilfslinien/Maße/Abstände, 90° nach rechts/links instead of the
UZS abbreviation, Anzahl der Ecken, Zielmedium, PDF mit Tags, Aufgabenleiste,
Position for the gradient stop location.

45 interface strings had no German row and fell back to English (23 of them
added to the shared table after the German table: Data Merge, PowerPoint
export, composite fonts, odd/even page breaks, ...); all now have one.

Preferences > Guides & Pasteboard (Align to Object Edges/Centers, Smart
Dimensions/Spacing, Snap to Zone) and Insert Cross-Reference > Link To drew
their labels without tr, so they stayed English in every language.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:43:11 +02:00
moppeeer 0d89d86992 Merge origin/main into codex/numbering-section-dialog 2026-10-15 11:43:10 +02:00
moppeeer a6814bc61a Merge origin/main into codex/numbering-section-options 2026-10-15 11:38:28 +02:00
markus.doebeleandClaude Opus 5.5 0a836edb7d fix: IDML links in a subfolder beside the package load on another machine
A package opened away from its author's machine kept image links like
`/images/logo.png` that no longer exist; only the package folder and its
Links/ folder were searched, so images in `images/` next to the .idml
showed as missing. Also try the link's trailing folders (up to 8) under
the package folder, longest first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:35:39 +02:00
moppeeer 1062d39511 Merge origin/main into codex/new-document-dialog 2026-10-15 11:35:26 +02:00
moppeeer da7a457c95 Merge origin/main into codex/compact-object-control-bar 2026-10-15 11:31:02 +02:00
moppeeer 6f127f9a4f Merge origin/main into codex/windows-integrated-titlebar 2026-10-15 11:27:25 +02:00
Middle DiscandClaude Sonnet 5.5 7aa518f495 Layout: explicit target for Margins and Columns and Create Guides
Only these two dialogs read bare numbers in the ruler unit; other dialogs keep their meaning.
Apply to: this page, both pages of the spread, or all pages. Parent edits default to the whole parent spread.
Replace unchecked indexing in inherited_guides and marginsAndColumns with get().

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XWRYQ5eieuUrtxhdbh6goq
2026-10-15 12:56:29 +03:30
moppeeer 16e3469f7a Merge origin/main into codex/pencil-live-preview 2026-10-15 11:24:00 +02:00
Andres TorresiandClaude Opus 5.5 a4e02ed4fd fix(text): variable font sliders preview live as one undo step; Character panel layout
Dragging a variable font axis slider previews the change on the page and
commits it as one undo step when the slider is let go. The panel gathers what
every axis slider did in a frame before acting, so with several axes a drag no
longer commits and reopens the change on every frame. A click, an arrow key or
a value typed in the field beside each slider applies at once. Narrow axes
(Skia's weight runs 0.48-3.2) step by hundredths; a slider snapping a value
that is off its steps no longer counts as a change.

Live previews are commands, so the panel stays on app.run: edit.preview
{label, command, params} shows an edit on the document as it was before the
preview began, edit.commitPreview makes it one undo step, edit.cancelPreview
drops it. A preview no panel held in the last frame (its slider let go, or the
panel closed) is committed at the start of the next one.

The Character panel drops its repeated heading, lays Size, Kerning and
Baseline, and Leading and Tracking, out in two columns whose captions and
fields line up, shows auto leading in parentheses, and shows a style with
axis settings as its axes alone, here and in the Text Frame floating bar.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:23:55 +01:00
moppeeer 6bc1bbff89 Merge origin/main into codex/eyedropper-text-format 2026-10-15 11:17:04 +02:00
Keyne PEKARandCodex e569381c2e IDML872.1: preserve liquid guides through interchange
Keep GuideType=Liquid on document and parent pages, with literal XML and
mixed-guide regression coverage. Leave object liquid constraints separate.

Co-Authored-By: Codex <codex@openai.com>
2026-10-15 17:13:35 +08:00
moppeeerandClaude Opus 5.5 dcfc9e9032 fmt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:57:31 +02:00
moppeeerandClaude Opus 5.5 8f10e54546 ROADMAP: text frames scale their text
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:56:57 +02:00
Marco Arnulfo eb4e811b52 feat(desktop): portable mode needs a writable DesignCraftData (#574)
A portable copy unzipped into a read-only folder such as Program Files
kept pointing settings and recovery at a DesignCraftData it could not
write, so both were lost without a word. The data folder is now probed
(created, then a file written and removed) and, when that fails, the
platform folders are used as if there were no portable.txt; the log and
the status bar say which folder could not be written.
DESIGNCRAFT_CONFIG_DIR still wins. Adds
a_portable_install_that_cannot_write_its_data_uses_the_platform_paths.
2026-10-15 10:46:12 +02:00
Marco Arnulfo 960982810b feat(desktop): portable mode looks next to DesignCraft.app on macOS (#574)
Inside a macOS bundle the executable sits in DesignCraft.app/Contents/MacOS,
a signed folder nobody edits, so the marker and DesignCraftData are looked
for next to the .app, as craft-settings does. Adds
inside_a_macos_bundle_the_marker_sits_next_to_the_app.
2026-10-15 10:46:12 +02:00
Marco Arnulfo bb30c98f15 feat(desktop): portable mode, portable.txt next to the executable (#574)
A file named portable.txt beside the executable keeps settings, logs,
the GPU start-up record and crash recovery in a DesignCraftData folder
next to it instead of the per-user folders, as PhotoCraft and FilmCraft
do. A folder of that name is not a marker. DESIGNCRAFT_CONFIG_DIR still
wins, empty or not. The Windows portable zip now ships portable.txt;
the MSI and the macOS app bundle don't, so nothing changes there.
2026-10-15 10:46:12 +02:00
moppeeerandClaude Opus 5.5 183feade3b Fit Frame to Content puts a text frame's bottom on its last baseline
The height search stopped up to 0.011 pt short of it (a line is set within 0.01 pt), so a fitted
frame scaled up with its text came out overset. InDesign fits 70 pt Kanji_PA to 18.521 mm, its
ascent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:34:50 +02:00
moppeeer f56273f72e Merge origin/main into codex/handle-double-click-fit 2026-10-15 10:34:44 +02:00
moppeeerandClaude Opus 5.5 2f05a52ff0 Scaling a text frame scales its text, as InDesign's When Scaling: Apply to Content
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:15:49 +02:00
wstockandClaude Fable 5.1 c1ee3b77c5 Tools: Cmd held with another tool borrows the Selection tool for one gesture (#919)
In InDesign, holding Cmd (Ctrl) with the Type or a drawing tool makes a
press select, move or resize as the Selection tool would, without
switching tools; the Pen family gets Direct Selection. The engine now
borrows that tool from a Cmd-held press to the release, keeps the chosen
tool, and shows the borrowed tool's cursor while Cmd is held.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011K1peyrh5MdZ6ttHkVq8Gh
2026-10-15 07:18:11 +00:00