Commit Graph
8140 Commits
Author SHA1 Message Date
HassanKhan b219decd75 Character panel: the highlighted font height icon keeps its contrast (#6304)
On the open list's row of the current reference, drawn on the
accent-tinted selection fill, the icon draws its measure in the name's
colour instead of the accent, which lost its contrast there. The other
rows and the closed field keep the accent.
2026-11-13 14:19:58 +05:00
HassanKhan 6dcbf804ca Character panel: icons for the font height references (#6304)
The Set Font Height Reference dropdown shows an icon before each
reference's name, in the open list and in the closed field: Em Box
frames the whole square around an A, Cap Height and x-Height put a bar
from the baseline to the top of a capital A or a lowercase x, and ICF
Box frames a square inset in the em square. The icons are painted with
egui's painter in the row's text colour and the theme accent.

widgets::dropdown_icon_names is a dropdown_names whose options carry a
painted icon.
2026-11-13 13:28:16 +05:00
BFlat 9a1a158a3f Merge pull request #7060 from dotCooCoo/fix/dcs-regained-clip
Place: a DCS file that regains its clipping path clips the group that stayed
2026-11-13 15:04:28 +07:00
BFlat 46be3af7f8 Merge pull request #7064 from dotCooCoo/feat/envelope-warp-points
Envelopes: the Mesh tool and Direct Selection edit a warp envelope's points
2026-11-13 15:04:18 +07:00
BFlat 806dd5ef5b Merge pull request #7049 from dotCooCoo/fix/3d-face-budget-per-object
3D: an object's fill and stroke solids share one face limit
2026-11-13 15:04:08 +07:00
BFlat dd8446f3a4 Merge pull request #7054 from dotCooCoo/feat/nine-slice-guides-outside-art
Symbols: 9-slice guides may lie outside the symbol's art
2026-11-13 15:03:59 +07:00
BFlat 8998d94cc8 Merge pull request #7057 from dotCooCoo/feat/paste-remembers-sublayers
Layers: Paste Remembers Layers puts art back into the sublayer it was copied from
2026-11-13 14:18:03 +07:00
BFlat 11a37082f7 Merge pull request #7058 from dotCooCoo/feat/touch-workspace
Touch: a two-finger tap switches between selection and drawing modes
2026-11-13 14:17:54 +07:00
BFlat 001660517c Merge pull request #7059 from dotCooCoo/fix/dcs-eps-proxy-plates
Place: DCS links reopen with their plates under the low-resolution EPS proxy
2026-11-13 14:17:44 +07:00
BFlat cc5a63d7dc Merge pull request #7062 from dotCooCoo/fix/para-style-options-height
Text styles: Paragraph Style Options keeps OK and Cancel on a small screen after a section switch
2026-11-13 14:17:31 +07:00
BFlat 7d417a0729 Merge pull request #7048 from dotCooCoo/fix/font-menu-shared-filters
Font menu: every font menu shares one set of filters
2026-11-13 14:17:18 +07:00
BFlat d0b4df357c Merge pull request #7063 from dotCooCoo/fix/ui-parity-pencil-fidelity-unit
Docs: the Pencil row gives Fidelity in screen pixels
2026-11-13 14:17:05 +07:00
BFlat 9ba02d41d7 Merge pull request #7038 from dotCooCoo/fix/schema-expected-phrases
i18n: parameter schema errors translate what the value must be
2026-11-13 14:16:56 +07:00
BFlat 77b0bbf1d3 Merge pull request #7066 from dotCooCoo/fix/package-scope-after-save
Package: a package started after its save keeps the automation roots
2026-11-13 14:16:46 +07:00
BFlat d5699579de Merge pull request #7017 from mockydevs/fix/pdf-empty-actualtext-art-6971
PDF import: glyphs in a span with an empty ActualText come in as outlines
2026-11-13 14:16:32 +07:00
dotCooCoo c30e553f74 3D: build each solid as its mesh is exported
Mesh export checked the object's solids together by building all of them
before the first mesh. It now builds and counts each solid as the loop
reaches it, so a mesh past the triangle budget stops the export before
the solids after it are built.
2026-11-12 23:03:32 -08:00
dotCooCoo 467c874fa0 Merge main into fix/3d-face-budget-per-object 2026-11-12 22:53:49 -08:00
dotCooCoo 8914d079f4 Envelopes: a warp grid kept before type's measure is registered is built again
The kept grid now records whether a type measure was registered, so a
grid built before registration is not reused when the registered inputs
number happens to be 0.
2026-11-12 22:36:02 -08:00
dotCooCoo e5e35e4a5a Envelopes: a warp handle placed at its own end leaves the warp
object.mesh.movePoint and object.envelope.setMeshPoint compare a handle
end with point plus handle, the form the caller sends, so a rounding
difference in (p + v) - p no longer turns an unchanged warp into a mesh
envelope with an undo step.
2026-11-12 22:29:14 -08:00
BFlat 7d77f8aebd Merge pull request #7044 from dotCooCoo/fix/effect-apply-strict-params
Effects: effect.apply refuses a wrongly typed parameter that has no default
2026-11-13 13:19:01 +07:00
BFlat 9b7aa561c0 Merge pull request #7036 from dotCooCoo/fix/pattern-cancel-dangling
Patterns: canceling a new pattern leaves no swatch or paint of it
2026-11-13 13:18:51 +07:00
BFlat 9b54280846 Merge pull request #7050 from dotCooCoo/feat/layers-delete-confirm
Layers: deleting layers that hold art asks first
2026-11-13 13:18:43 +07:00
BFlat 41af896968 Merge pull request #7045 from dotCooCoo/fix/char-style-options-height
Text styles: Character Style Options opens at its full height
2026-11-13 13:18:34 +07:00
BFlat 53ff632a26 Merge pull request #7042 from dotCooCoo/feat/pict-open-place
File formats: PICT pictures open and place
2026-11-13 13:18:26 +07:00
BFlat e3097a5035 Merge pull request #7047 from dotCooCoo/fix/i18n-escaped-brace-keys
i18n: messages with escaped JSON braces match their catalog rows
2026-11-13 13:18:11 +07:00
BFlat c6da74eef3 Merge pull request #7043 from dotCooCoo/fix/pen-readout-without-rubber-band
Drawing tools: the measurement readout shows with the rubber band off
2026-11-13 13:17:57 +07:00
BFlat bf71429d06 Merge pull request #7052 from dotCooCoo/feat/font-samples-on-white
Font menu: Show samples on white draws each sample in dark type on a white area
2026-11-13 13:17:48 +07:00
BFlat 499903878e Merge pull request #7055 from dotCooCoo/feat/mojikumi-presets
Type: the Mojikumi Set menu offers the predefined spacing sets
2026-11-13 13:17:36 +07:00
BFlat 7257c28a83 Merge pull request #7056 from dotCooCoo/feat/rotated-box-transforms
Free Transform: handles, shear and distort follow the rotated bounding box
2026-11-13 13:17:23 +07:00
dotCooCoo 304fdfeb35 Merge main into fix/3d-face-budget-per-object
The i18n test that main added for 3D refusals calls validate_three_d_at with this branch's (Option<usize>, usize) position: effect 0 of appearance item 0 is (Some(0), 0).
2026-11-12 22:07:00 -08:00
dotCooCoo aef50c2470 Package: a package started after its save keeps the automation roots
With Background Save and Background Export on, Package's OK on a dirty
document starts the package once the save's result arrives. That start
ran in background::after's callback, on the frame that applied the
save's result, so the worker took the frame's file access scope. The
desktop frame has no automation roots, so a package asked for by an
automation request confined to its roots could write outside them.

OK now captures the scope in force and starts the deferred package in
it, so the package is checked against the same roots as the save.
2026-11-12 22:06:08 -08:00
dotCooCoo dc92be2391 Place: only a DCS clipping path turns the plain group back into a clip group
A plain group holding just the image becomes its clip group again only
when the image takes its DCS file's clipping path. When Placement Options
clip the image, it goes into a new clip group as before, so a group the
user made around the image alone stays a plain group.
2026-11-12 22:02:31 -08:00
dotCooCoo 0676016741 Place: the DCS check on open agrees with a full read for short or corrupt files
The check that decides whether a linked EPS file is DCS now gets the
file's size. When the bytes read hold the whole file, it reads them as a
full read does. A binary EPS header whose PostScript or TIFF preview ends
past the end of the file names no plates, so such a file keeps its
preview with lowResProxyEps on instead of going missing.
2026-11-12 21:59:28 -08:00
dotCooCoo af7c5d0432 3D: check an object's solids after the geometry effects before the effect
Validation built the Extrude & Bevel, Inflate and Rotate solids from the
stored shape, while drawing, Export 3D Object and Expand as Wireframes
build them after the geometry effects before the 3D effect. A Transform
effect with copies before Extrude & Bevel could pass the check and then
draw the source art. Validation now reshapes the object, the fill or
stroke, or a group's members with those effects first.

validate_three_d_at and validate_three_d_at_in take the effect's index
for an effect on the object too, so an edit checks the effects before
that effect, and effect.apply checks a new effect after the others.
2026-11-12 21:47:53 -08:00
Don Omondi 74deb4aade Merge remote-tracking branch 'upstream/main' into fix/pdf-empty-actualtext-art-6971
# Conflicts:
#	docs/file-format-parity.md
#	docs/roadmap.md
#	docs/target-app-parity.md
2026-11-13 00:46:18 -05:00
dotCooCoo ffc21b702f Symbols: same-edge 9-slice art shrinks when the instance is smaller
With both guides of an axis past the same edge, the art keeps its size
from the other edge of the instance, or shrinks to the instance's width
or height when the instance is smaller than the art. The module doc,
AxisMap::new and the docs/target-app-parity.md entry now say so.
2026-11-12 21:44:36 -08:00
dotCooCoo 33931064ab Merge main into fix/font-menu-shared-filters 2026-11-12 21:42:31 -08:00
dotCooCoo 6886198458 Merge main into fix/schema-expected-phrases 2026-11-12 21:37:21 -08:00
dotCooCoo 4316f819a8 Envelopes: the Mesh tool and Direct Selection edit a warp envelope's points
A selected warp envelope now shows the points of its surface on a 4x4
grid (8x8 or 16x16 where 4x4 strays more than 0.1% of the warp's
diagonal from it). object.mesh.movePoint, movePoints, addLine,
deletePoint and object.envelope.setMeshPoint accept a warp: the first
edit turns it into a mesh envelope on that grid and applies the edit as
one undo step, so Undo or Escape gives the warp back with its style and
bend. An edit that moves no point leaves the warp and adds no undo
step. A warp that no such grid follows (some version 0 maps) shows no
points and its edits fail without changing anything.

movePoints and setPointColor on a gradient mesh record no undo step
when they change no point.
2026-11-12 21:37:21 -08:00
dotCooCoo fc48d84cad Text styles: Paragraph Style Options keeps OK and Cancel on a small screen after a section switch
The dialog stored the scroll area's offered height as its content
height, which is taller than a short section draws. The room it gave a
longer section after a switch then left too little for the rest of the
window, and on a small screen OK and Cancel went below the screen. It now
stores the height the scroll area shows, the smaller of the offered
height and the content's height.

A changed content height also lays the frame out again before it is
shown, so the window is placed at its new size in the frame of the
switch rather than one frame later.
2026-11-12 21:34:46 -08:00
dotCooCoo 9468508501 Docs: the Pencil row gives Fidelity in screen pixels
#5748 moved the Pencil's and the Paintbrush's Fidelity to screen pixels, but
docs/ui-parity.md still gave it in points. The Pencil row now gives the
slider's rail, the field and the key steps in px, and says the tool sends
path.freehand the value in points at the current zoom.

The Pencil row also appeared twice, the second copy without the Fidelity
text. The two rows are merged into one.

The comments on FIDELITY_MAX, fidelity_step, fidelity_at and fidelity_from
in the Tool Options dialog name the tool's unit, since the slider is shared
with Smooth and Blob Brush, which stay in points.
2026-11-12 21:33:07 -08:00
dotCooCoo e4fdc10b99 Place: a DCS file that regains its clipping path clips the group that stayed
When a linked file lost its clipping path, the clip group holding the
image stayed as a plain group of the image. When the file had a clipping
path again, the image went into a new clip group inside that plain group,
so each round nested one more group. The plain group holding just the
image now becomes its clip group again, in the layers and in symbol,
pattern, graph design and mask art.
2026-11-12 21:30:06 -08:00
dotCooCoo 2d2ac65b2c Place: DCS links reopen with their plates under the low-resolution EPS proxy
With the lowResProxyEps preference on, opening a document kept the saved
preview of a linked DCS file, so the link showed as EPS without its
plates. Opening now reads the first 1 MiB of each such EPS file and reads
a DCS file in full. The whole file is read only when a binary EPS header
puts the PostScript past those bytes or the header comments run past
them. Other EPS files keep their preview.
2026-11-12 21:30:06 -08:00
BFlat ce37ec3d9a Merge pull request #7041 from dotCooCoo/fix/3d-refusal-translations
i18n: 3D effects' refusal messages are translated
2026-11-13 12:28:07 +07:00
BFlat 1b9aa07e65 Merge pull request #6995 from dotCooCoo/feat/actions-insert-select-path
Actions: Insert Select Path stores the selected path as a step
2026-11-13 12:27:58 +07:00
BFlat bae885e393 Merge pull request #6876 from dotCooCoo/feat/outline-object-image-alpha
Effects: Outline Object on an image's fill or stroke follows its opaque pixels
2026-11-13 12:27:50 +07:00
BFlat 8cd598397c Merge pull request #7039 from dotCooCoo/fix/package-after-failed-save
Package: a failed save before packaging writes no package
2026-11-13 12:27:41 +07:00
BFlat ef3beb9401 Merge pull request #7027 from dotCooCoo/fix/followup-6985
Fonts: Find Font skips patterns and inline graphics that draw nothing, and Refresh Font List lays out type in art again
2026-11-13 12:27:33 +07:00
BFlat e905418a55 Merge pull request #7037 from dotCooCoo/fix/move-guide-snap-tolerance
Smart Guides: a moved selection reaches ruler guides within the Snapping Tolerance
2026-11-13 12:27:26 +07:00
BFlat 65138198a8 Merge pull request #7033 from dotCooCoo/fix/colorize-missing-link-fill
Colorize: a fill color recolors a colorized image whose link is missing
2026-11-13 12:27:18 +07:00