Fold marks on every spread, a layer list that keeps up with the document, and Select → All Groups.
New in this release
Text frames show their text in the layer list. A text frame nobody named — including every
unnamed frame in a converted InDesign document, which used to read "Element 12" — is listed by the
start of its text. A frame with a name keeps it.
Shift-click and Cmd-click on the page. Shift-click an element to add it to the selection,
Cmd-click to take it out; the rest of the selection stays. A click without a key still selects
just that element. Option-click is unchanged.
Editing the picture inside an image frame. Once you click the circle in the middle of an image,
the parameter bar shows the picture's own settings under Image content: where it sits in the
frame, its size (it keeps its proportions) and its rotation. Rotate turns the picture about its
centre; the frame stays as it is. You can now drag the picture from anywhere on it, not only from
the circle. Click outside the picture to go back to the frame.
Compound paths. Select two or more paths and choose Arrange → Make Compound Path (⌘8):
they become one shape, with the colour and stroke of the backmost, and where they overlap there is
a hole — a ring, a letter with a counter, a cut-out. Rectangles and other shapes can join once they
have been turned into a path with Select → Convert to Path. The path editor now edits every path of
a compound path: the others are shown faintly, and clicking one switches to it. Arrange → Release
Compound Path (⌥⌘8) splits one back into separate shapes, each where it was.
Resizing snaps, like moving. Drag a handle and the edge you drag lines up with the edges and
centres of other elements and with ruler guides as it comes near them, shown as on a move: a blue
line for an element, the guide itself turning green. The opposite edge stays where it is. As with moving, Ctrl turns it off; with Shift
(keeping proportions) it is off too.
Pie slices and rings. An ellipse can be opened up, as in Figma. Select one and drag the small
circle on its rim round to cut a slice out of it; a second knob turns the slice, and the knob in the
middle drags outward to make a hole — a ring, or a ring segment. The parameter bar has the same
three under Arc: start (°), sweep (% of a full turn) and ratio (the hole, %). A stroke follows the
whole outline, the straight cut edges included. Drag the slice knob back onto the start to close
the ellipse again.
Select → All Groups selects every group on the page. With several groups selected,
Arrange → Ungroup (and its shortcut) now takes all of them apart in one step; it used to
ungroup only the topmost.
Fixed in this release
Page thumbnails are full size with facing pages hidden. With facing pages hidden, each page in
the page bar was still drawn at the size it has as half of a spread, with empty space beside it — a
landscape page came out half as wide as it could be. Each page now uses the whole row. With facing
pages shown nothing changes (TYP-793).
Deleting all the text in a frame keeps its font. Select everything in a text frame and delete
it, and what you typed next came out in the default font, size and colour. It now comes out
formatted like the text you deleted. The same applied to Find & Replace replacing a whole
paragraph with nothing.
Opening a group in the layer list no longer takes a precise click. Only the left half of the
arrow beside a group answered — less in a group inside a group. The whole arrow does now, with
room around it, and clicking a layer's name selects it.
The layer list keeps up with the document. Adding, deleting or undoing something without
changing the selection left the list out of date until you clicked something else. It now follows
every change. The Manage button, which did nothing, has been removed.
Bring to Front, Send to Back and the other Arrange commands can be undone. Changing the
stacking order — from the menu, the shortcuts or by dragging in the layer list — was not an undo
step, so it could not be undone and did not mark the document as changed.
A layer dragged in the layer list lands where the line shows. Dragging a layer down put it
one row too far — the top layer dropped on the third row ended up last — and it could not be
dropped below the last layer at all. Dropping on the upper half of a row now puts it above that
row, the lower half below it, and the empty space under the list moves it to the end. The line
that shows where it will land is drawn in the selection blue instead of black.
Also shipping, outside this bundle
These come from the PDF service, not from the editor, and reach users when that service deploys:
Fold marks on spreads. A spread printed with crop marks now gets dashed fold marks wherever two
of its pages meet, above and below the page: in the middle of a two-page spread, and at every fold
of a gatefold. A spread whose pages are stacked folds across, so its marks stand left and right of
the page. Covers keep the fold marks they got in the previous release, at both edges of the spine
or in the middle when the spine is 0 mm. A spread printed as single pages has only its crop marks
(TYP-792).
Pie slices and rings print as drawn. The PDF draws an opened ellipse — slice, ring or ring
segment — with the same outline as the editor. ⚠️ Until the PDF service has deployed, an opened
ellipse prints as a full one (TYP-796).
Typograph developers notes
Canvas pin e5bd91b — TYP-793, the delete-keeps-font fix, compound paths and TYP-796 circle arcs.
The layer list refreshes on typograph_document_changed. Arrange and the list's drag-reorder are
now undo steps, so they reach is_changed() and that event; they did neither before.
Canvas fix/delete-all-keeps-font: delete_selection_range() refilled an emptied paragraph with
a bare 'default' run, dropping the run's overrides; it now uses empty_run_like() — the first
deleted character's style and overrides.
Canvas feat/compound-path: Spread.combine_polys() keeps the backmost poly and gives it every
path, and Spread.release_compound_path() splits one again — the original keeps its first path and
uuid, every other piece gets a fresh uuid; each source is baked first (PageElementPoly.bake_transform() — rotation and flip written
into the points), since the result carries one angle. A multi-path poly was already filled
even-odd on the canvas and in the PDF, and nativePaths is a list in the schema, so nothing below
the canvas changes.
RemoveGroup() takes one group or several and brackets its own undo — callers must not wrap it.
The layer list moves a dragged element itself, within its own level, instead of calling
Spread.reoder_page_elements(): canvas's reoder_element() inserts at to + 2 for a downward
move. Nothing else in editor-ui calls it; the canvas method is unchanged.
TYP-793 (canvas pagebar.ts, update_row()): with facing pages hidden a single record is
fitted to the whole row (2 * kSlotW), not to one spine slot; the drag image follows. Hit-testing
reads the preview's zoom, so it needed no change.
TYP-792 (document-generator): foldPositions() has one rule for every spread — a fold is an
edge two page records share (abutting and overlapping along it, the test innerEdges()
makes) that lies strictly inside the trim. A cover is not a special case any more: its records are
back | spine | front, so its folds are the spine's edges, coinciding when the spine is 0 mm.
⚠️ A page's own outline is never a fold: beside a shorter flap, the flap's edge is a cut. A mark is
drawn only at an end of the fold that reaches the trim, and a spread output as single pages
carries crop marks only.
TYP-796 — a circle carries arc_start (°, from 3 o'clock, clockwise), arc_sweep (°) and
arc_ratio (0–<1, the hole). They are written only when set: a full circle writes none, so an
unopened circle's JSON is unchanged. Merge order: document-schema (arcStart / arcSweep /
arcRatio, required — ALLOW_EXTRA_ATTRIBUTES=false) → lock bumps in converter-, publisher- and
document-service → document-generator → canvas → editor-ui. Canvas: PageElementCircel.get_arc() /
set_arc() / trace_outline() and the knob methods; the browser suite is
window.run_circle_arc_tests(). editor-ui: parameterbararc.ts, arcknob.ts, and a step in the
idle mouse-down before the scale handles. document-generator: outArcOutline() traces the same
path; a full circle with no hole keeps TCPDF's Circle() / Ellipse().