Commit Graph
2930 Commits
Author SHA1 Message Date
BFlat a391dedfe5 Merge pull request #7875 from dotCooCoo/fix/live-paint-bucket-click-history
Live Paint: Bucket double-click and triple-click match the paint from before a drag, a view-tool press or a joined edge
2026-11-15 23:56:28 +07:00
BFlat bd67a010f6 Merge pull request #7827 from dotCooCoo/feat/ai-export-writes-kinsoku-kinsoku-shori-type
.ai export: paragraphs keep Kinsoku, Kinsoku Shori Type, Burasagari and Bunri-Kinshi
2026-11-15 22:45:05 +07:00
dotCooCoo d86c9871c6 Live Paint: a triple-click after a release across an edge matches the fill from before it
When a click's press lands in one face and its release in the next, the
drag fills both. The bucket now notes the fill every face the drag
crosses had before the press, the release included, so a double-click
or triple-click that follows on such a face compares that fill instead
of the one the first click gave it. This also holds when the release of
the last click crosses into the clicked face.

When the first click makes the Live Paint group, or merges the selection
into a selected group, the crossed face counts with the fill it was made
with: a kept face's paint from the merged group (an unplaced gradient
fixed to its fit), else the fill Make gives it, the topmost fill that
draws of the front-most source path over it that has one. A selected
group's edges no longer count as source paths.

A double-click whose two clicks land on two joined edges now paints the
edges joined through the other edge its clicks painted:
livePaint.strokeEdge takes `through`, edge ids that the join counts as
drawing with `match`, and the tool passes that edge. When the second
press lands on the next edge and is released back on the first, the
double-click matches the first edge's stroke paint from before the
first click.

A press that the view tools take (held Space, the middle button), or
that holds Cmd/Ctrl and goes to the lent selection tool, now counts as
a press that paints nothing, so the clicks around it are not taken for
one triple-click's: the session tells the tool through the new
Tool::press_elsewhere.

The tool doc, docs/mcp.md and the progress-doc line now say that a click
records an undo step only when it changes a paint, and that a
triple-click paints the faces that have the clicked face's fill (and the
edges that draw with the clicked edge's stroke paint) with the bucket's
paint.

Follows #7291.
2026-11-15 07:19:56 -08:00
BFlat 3239725c40 Merge pull request #7817 from dotCooCoo/feat/psd-import-options-import-slices-after-7649
PSD: Import Slices brings a file's slices in as user slices on Open and Place
2026-11-15 20:45:50 +07:00
BFlat ea3f81d9c3 Merge pull request #7518 from Taha-Mahmoodi/feat/indic-composers
feat(text): Middle Eastern & South Asian and Standard composers per paragraph (#4935)
2026-11-15 20:45:02 +07:00
BFlat 04731b9ce0 Merge pull request #7771 from dotCooCoo/feat/status-bar-show-menu
Status bar: a Show menu chooses what the info field displays
2026-11-15 19:45:09 +07:00
BFlat f62932eb93 Merge pull request #7776 from dotCooCoo/feat/aia-files-carry-select-object-steps
Actions: Load Actions… reads .aia Set Selection steps as Select Object
2026-11-15 17:31:10 +07:00
BFlat 20282a13d0 Merge pull request #7807 from dotCooCoo/fix/guide-add-select-allonartboard-select-font-scope
MCP: guide.add and the artboard selections refuse an artboard that is not a whole number
2026-11-15 17:30:38 +07:00
BFlat 1387328255 Merge pull request #7731 from dotCooCoo/feat/svg-filter-user-space-matrix
SVG Filters: a filter on a turned or skewed object is kept on import and drawn
2026-11-15 17:30:29 +07:00
BFlat b13d3d15b4 Merge pull request #7806 from dotCooCoo/fix/merging-a-spot-swatch-into-another-drops-the-old
Swatches: merging a swatch drops the process plates of the gradient stops linked to it
2026-11-15 17:30:20 +07:00
Taha-Mahmoodi d4ac2782c0 Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	docs/target-app-parity.md
2026-11-15 14:12:59 +04:30
dotCooCoo 028c8b5e99 Merge main into feat/ai-export-writes-kinsoku-kinsoku-shori-type 2026-11-15 01:41:30 -08:00
BFlat 0473b74e42 Merge pull request #7781 from dotCooCoo/feat/flare-drag-keys
Flare: Ctrl/Cmd holds the center and Up/Down and ~ change the rings while they are placed
2026-11-15 16:40:37 +07:00
BFlat 33946f49dc Merge pull request #7799 from dotCooCoo/fix/one-undo-step-a-refused-brush-on-a-path-with-no
Brushes: brush.freehand is one undo step and refuses strokeless paths and unknown keys
2026-11-15 16:40:28 +07:00
BFlat 4a8db16419 Merge pull request #7816 from dotCooCoo/fix/bucket-strokeedge-and-livepaint-info-act-on
Live Paint: the Bucket replaces every fill or stroke row of a face or edge
2026-11-15 16:40:12 +07:00
BFlat 2146b741e7 Merge pull request #7772 from dotCooCoo/fix/paste-plain-graph-labels
Paste: Paste without Formatting keeps a pasted graph's labels plain when it is drawn again
2026-11-15 16:40:03 +07:00
BFlat d0320470b9 Merge pull request #7803 from dotCooCoo/fix/create-outlines-drops-the-type-object-s-own
Type: Create Outlines keeps the type object's effects and transparency
2026-11-15 16:39:52 +07:00
BFlat 1d47588e77 Merge pull request #7798 from dotCooCoo/fix/save-and-save-for-older-apps-read-the-placed
Save: read the images and placed documents in stored brush art
2026-11-15 16:39:45 +07:00
dotCooCoo d842aa816c Merge main into feat/psd-import-options-import-slices-after-7649 2026-11-15 00:50:14 -08:00
BFlat ba87d5bf15 Merge pull request #7763 from dotCooCoo/feat/hidden-panels-edge-reveal
Window: hidden panels show while the pointer rests on the window edge
2026-11-15 15:46:57 +07:00
BFlat 6dc068b162 Merge pull request #7703 from dotCooCoo/feat/color-management-policies
Color Settings: RGB and CMYK policies keep, take off or convert a document's profiles on open
2026-11-15 15:46:48 +07:00
BFlat a9b43489a7 Merge pull request #7769 from dotCooCoo/feat/align-key-anchor
Align: a Shift-clicked anchor becomes the key anchor that Align and Distribute keep in place
2026-11-15 15:45:20 +07:00
BFlat e5f15de4d6 Merge pull request #7770 from dotCooCoo/feat/composite-custom-character-sets
Type: composite fonts take custom character sets
2026-11-15 15:45:12 +07:00
BFlat 06d776e220 Merge pull request #7757 from dotCooCoo/feat/3d-classic-preserve-spot
3D (Classic): Preserve Spot Colors keeps spot inks in shaded faces
2026-11-15 15:45:01 +07:00
BFlat 4b7af3b6c7 Merge pull request #7792 from dotCooCoo/fix/trace-abutting-seams
Image Trace: Abutting traces draw seam fills under their paths
2026-11-15 15:44:43 +07:00
BFlat 9643b21496 Merge pull request #7786 from dotCooCoo/feat/variable-options-kind
Variables: Variable Options changes a variable's kind as well as its name
2026-11-15 15:44:15 +07:00
BFlat cbadd8c14b Merge pull request #7791 from dotCooCoo/fix/path-commands-do-not-skip-locked-or-hidden-paths
Artwork Cleanup: path commands take locked and hidden art named by ids
2026-11-15 15:43:35 +07:00
dotCooCoo 253653e08f Merge main into fix/bucket-strokeedge-and-livepaint-info-act-on 2026-11-15 00:28:08 -08:00
dotCooCoo 33f7242917 Merge main into fix/merging-a-spot-swatch-into-another-drops-the-old 2026-11-15 00:18:00 -08:00
dotCooCoo 3c1bfd8374 Merge main into fix/guide-add-select-allonartboard-select-font-scope 2026-11-15 00:17:57 -08:00
dotCooCoo 8afaaec3f8 Merge main into feat/psd-import-options-import-slices-after-7649 2026-11-15 00:16:53 -08:00
dotCooCoo 116c8bae3c Place: PSD files placed without Show Import Options take the last PSD Import Options
With Show Import Options off, a PSD or PSB file placed on its own and
embedded takes the conversion, hidden-layer and Import Slices choices
made last in PSD Import Options, as text and DXF files take theirs.
An importSlices or hiddenLayers the params give is kept. Files from
bytes, which have no file to link to, are embedded even when the Place
dialog's Link is on, alone and in the place cursor. With Show Import
Options on, each PSD file of the place cursor asks for its options.
2026-11-15 00:16:48 -08:00
dotCooCoo 8a4ba743c6 Merge main into fix/create-outlines-drops-the-type-object-s-own 2026-11-15 00:12:24 -08:00
Taha-Mahmoodi a4c176a0dd Merge remote-tracking branch 'origin/main' into feat/indic-composers
# Conflicts:
#	docs/gaps.md
#	docs/target-app-parity.md
2026-11-15 12:37:49 +04:30
dotCooCoo 5685186262 Merge main into fix/one-undo-step-a-refused-brush-on-a-path-with-no 2026-11-15 00:02:10 -08:00
dotCooCoo 7a1b1c5f2e Merge main into fix/save-and-save-for-older-apps-read-the-placed 2026-11-15 00:02:09 -08:00
dotCooCoo cb368c29e4 Merge main into fix/paste-plain-graph-labels 2026-11-14 23:52:57 -08:00
dotCooCoo f3a4c0ac1a Paste: Paste without Formatting also drops a pie's own legend fill mark
Paste without Formatting dropped the label formats a pasted graph keeps
but left the mark that its legend labels' fill is their own. After a later
change to a legend label (its size, for example), the next redraw read the
default black fill as the labels' own and drew them black on dark wedges
again. The mark now stays behind with the other formats.

A pie's legend label whose series name holds line breaks of its own (from
a quoted CSV cell) is now located by all of its lines, as a redraw centers
it. Before, only `|` counted as a line break, so a tall label on stacked
pies could take the contrast of the wrong ring.

Paste no longer recolors the legend labels of a pie whose wedges a merged
or changed swatch recolors. That is a separate change to Paste and goes in
its own pull request. Paste without Formatting sets the legend labels by
the wedge colors as copied.
2026-11-14 23:51:27 -08:00
BFlat 97c3226d72 Merge pull request #7773 from dotCooCoo/feat/variables-panel-sort-columns
Variables: Variables, Objects and type columns sort the variable list
2026-11-15 14:43:04 +07:00
BFlat 871dc96f7d Merge pull request #7775 from dotCooCoo/feat/recolor-new-row
Recolor Artwork: New Row adds a row that current colors can be merged into
2026-11-15 14:42:46 +07:00
BFlat 04b91c748e Merge pull request #7648 from dotCooCoo/feat/graph-type-dialog
Graphs: Graph Type is a dialog of its own with type buttons and a page per axis
2026-11-15 14:42:05 +07:00
dotCooCoo 63dab14ee7 Image Trace: Abutting traces draw seam fills under their paths
An Abutting trace with Fills now holds a "Seam Fills" group under its
paths. For each color it has one stroke, 1.5 image pixels wide, along
the edges where a filled path of that color meets a filled path drawn
after it, in that color. A renderer that anti-aliases each path on its
own no longer shows a light hairline along those edges. The traced
paths and their shared edges do not change, and edges against the
image's border, a transparent area or a color left out get no stroke.

- vectorcraft-trace: `seam_fills` finds the segments two filled paths
  share and strokes them in the lower path's color (one stroke per
  gradient path). Overlapping, traces without Fills and Flat Logo get
  none.
- Image Trace commands: the group comes under every path (right above
  the hidden image in a live trace). Expand keeps it, Expand by color
  leaves it under the color groups, and a trace whose paths have more
  than half of the anchor limit gets no seam fills.

Docs: docs/mcp.md, the params text, docs/target-app-parity.md.
2026-11-14 23:15:50 -08:00
dotCooCoo 37052dd07a Type: Composite Fonts takes custom, entry and char from ui.dialog.set on open
The dialog opened without the custom, entry and char fields, so
ui.dialog.set refused them until Custom was clicked or an entry typed.
The spec now lists them in its inputs, and the dialog opens with
custom off and an empty entry.
2026-11-14 23:04:09 -08:00
dotCooCoo 0f67bbbddf Merge main into feat/3d-classic-preserve-spot 2026-11-14 22:56:34 -08:00
dotCooCoo 5f18834e55 Merge main into fix/save-and-save-for-older-apps-read-the-placed 2026-11-14 22:52:49 -08:00
dotCooCoo c0b1c2e144 Merge main into feat/color-management-policies 2026-11-14 22:51:34 -08:00
BFlat 4a5f07b8c3 Merge pull request #7753 from dotCooCoo/feat/info-panel-tool-readouts
Info: the panel shows the move, transform, Zoom and Paintbrush values of the tool in use
2026-11-15 13:50:30 +07:00
BFlat 941277aa38 Merge pull request #7747 from dotCooCoo/feat/3d-render-wireframe
3D and Materials: Render Settings › Wireframe draws the live 3D effect as its faces' edges
2026-11-15 13:50:13 +07:00
BFlat b43372361e Merge pull request #7746 from dotCooCoo/fix/replace-clipped-psd-keeps-transform
Place: a plain image replacing a clipped PSD keeps its scale and rotation
2026-11-15 13:49:22 +07:00
dotCooCoo 1f841dbeec Variables: Variable Options changes a variable's kind as well as its name
Variable Options in the Variables panel only renamed a variable, and no
command changed a variable's kind. variable.rename now takes
{name, newName?, kind?} and renames the variable, changes its kind, or
both, in one undo step, with none when nothing changes. A null or empty
value, an unknown kind, a taken name and locked variables are refused.

A kind change unbinds the objects that can't hold the new kind (text
keeps type with no other text variable, image keeps image objects,
graph keeps graph roots, visibility keeps every object) and drops the
variable's values in every data set. The dialog shows the variable's
name and kind and sends both.
2026-11-14 22:47:04 -08:00