When the grid step nearest the centered place puts the lines outside a frame that narrows and widens again, Center now tries the steps on both sides of it, nearest first, instead of only the steps above it.
In a frame that narrows and widens again, Bottom, Center and Justify now
try lower grid steps until the lines fit the outline, and leave the lines
in place when none does, instead of taking the next lower step unchecked.
A grid whose step is too small to count across the column is now treated
as no grid when a line is placed, so the line keeps a finite baseline.
Tests cover a waist-shaped frame on a 40 pt grid, a tiny-step grid that
starts away from the line, and Justify with a wrapped paragraph under
All Lines and First Line Only.
Copying a story gives the objects anchored in its table cells and
notes fresh ids down to 64 levels, as the table copy does. A copy whose
stories below that level hold anchored objects, tables or notes is
refused with the nested-too-deeply error instead of recursing without
limit.
Culling grew an object's box by its unscaled stroke and effect outset,
so a view or repaint patch that showed only the outer part of a scaled
object's stroke or hardened glow skipped the object. Culling now scales
both by the object's largest scale factor, as drawing does. The CMYK
ink-pass area grows each object, and each nested child, by its stroke
and effect outset under its full transform.
object::renumber now gives a story copy's anchors and tables new ids.
Duplicate Layer keys each copied anchor by the original anchor's id,
so copied cross-references point at the copied paragraph, and pairs
copied tables with the originals in order, so objects anchored in
table cells keep their live captions. A copy that renumber reports
incomplete is refused with the nested-too-deeply error.
The one Inset field of a non-rectangular frame and the inset link now
follow the frames the dialog changes: the frame that shows the caret,
or every frame holding selected text. Before, a caret with no stored
frame showed four sides for an oval frame, and the link checked every
frame of the story.
A preview remembers the document it is shown in. When OK is refused or
Cancel is chosen after another document became active, that document
goes back as it was instead of keeping the previewed options.
The frames taken from the caret or selected text are also refused once
the document has changed after the dialog opened. Undo puts back the
document's id counter, so a frame made after Undo can take a stored id.
An object style that gives neither EnableStrokeAndCornerOptions nor
corners of its own takes the category from the style it is based on, and
one without EnableTextFrameGeneralOptions does the same for its text
frame options. A style based on [None] still sets neither, and [None]
keeps the corners it sets itself.
Object styles now export their corners, and an import gives an item
without corner attributes the corners of its style chain and of [None].
An item with no corners whose style, a style it is based on, or [None]
sets corners now writes None for each corner, so it keeps no corners
after export and import. The lookup runs once per style.
New Object Style and Object Style Options record the document they open
on, with the epoch that File > Revert changes. OK is refused, and the
dialog stays open with the reason, when another document is active, the
document was closed, or it was reverted. Apply Style to Selection applies
the new style to the objects selected when the dialog opened that still
exist, not to a selection made while it was open.