Commit Graph
3036 Commits
Author SHA1 Message Date
BFlat 2cdd00cf7b Merge pull request #2278 from storytold/fix/properties-flip-labels
Properties: the flip buttons keep the reference app's Properties names (#1910)
2026-10-16 03:23:19 +07:00
BFlat 8958dfe60a Merge pull request #2274 from dotCooCoo/feat/type-reset-tracking
Type: Cmd/Ctrl+Alt+Q resets tracking to 0 and kerning to Auto
2026-10-16 03:22:55 +07:00
BFlat e5c12d0487 Merge pull request #2272 from dotCooCoo/feat/layers-eye-outline-others
Layers: Ctrl/Cmd+Alt-click on an eye switches the other layers between Outline and Preview
2026-10-16 03:22:39 +07:00
BFlat e797b68220 Merge pull request #1920 from sanyamsingh001/codex/r65-width-finite
G1: Fix intermediate overflow in adjoining width adjustments
2026-10-16 03:22:21 +07:00
BFlat f4b0e0f27b Merge pull request #1926 from marcoarnulfo/fix/paste-in-place-off-artboard
Paste in Place: art copied from off the artboards goes back where it was
2026-10-16 03:22:02 +07:00
BFlat 2480017af0 Merge pull request #1939 from dotCooCoo/fix/issue-1692-hex-field-tab
Fix #1692: tabbing through a hex field no longer resets the color
2026-10-16 03:21:46 +07:00
BFlat 312456a769 Merge pull request #1937 from dotCooCoo/fix/issue-1692-tab-order
Part of #1692: Tab in the Color Picker goes through one color model's fields before the next
2026-10-16 03:21:29 +07:00
BFlat bbda88bc71 Merge pull request #1951 from marcoarnulfo/fix/type-color-while-typing
Type: a colour picked while typing keeps what was typed
2026-10-16 03:21:13 +07:00
BFlat a324b0e25f Merge pull request #1967 from switch87/fix/1952-optional-number-strings
Transform commands: a string for an optional number is an error (#1952)
2026-10-16 03:20:58 +07:00
BFlat 39faa02fe5 Merge pull request #1988 from MarekSpodBiedry/issue-1970
Paint: picking another pattern swatch keeps the pattern transform (#1970)
2026-10-16 03:20:40 +07:00
BFlat 57ec0e6d7f Merge pull request #2047 from AyberkA0/i18n-eps-layers-note
i18n: the notes for an EPS or .ai whose layers weren't read are translated (#2035)
2026-10-16 03:20:23 +07:00
BFlat 6341519444 Merge pull request #2048 from AyberkA0/doc-loadprofile-lifetime
color.loadProfile: say that a loaded profile lasts for the run (#1955)
2026-10-16 03:20:07 +07:00
BFlat d4fa50f262 Merge pull request #2146 from AyberkA0/add-anchor-plus
Shortcuts: + selects the Add Anchor Point tool (#2142)
2026-10-16 03:19:50 +07:00
BFlat 6c4804383a Merge pull request #2155 from dotCooCoo/fix/inflate-one-edge-index
3D and Materials: Inflate builds its edge index once
2026-10-16 03:19:34 +07:00
BFlat 263fcff7b1 Merge pull request #2157 from dotCooCoo/fix/export-params-list-ai
Export: the export commands' params and the MCP export tool list the .ai format
2026-10-16 03:19:18 +07:00
BFlat 3c9fda57df Merge pull request #2183 from dotCooCoo/fix/export-for-screens-formats-text
Export for Screens: the params text and the format error list every format a row writes
2026-10-16 03:19:03 +07:00
BFlat 59dfe0834c Merge pull request #2198 from marcoarnulfo/fix/pdf-title-document-name
PDF: an untitled document saved to a file exports titled after it
2026-10-16 03:18:47 +07:00
BFlat b70ba0f82b Merge pull request #2255 from dotCooCoo/docs/print-system-service
Docs: the Print section describes printing through the system's print service
2026-10-16 03:18:31 +07:00
BFlat 3a0d1ce970 Merge pull request #2261 from dotCooCoo/fix/ru-isolate-latin-letter
i18n: Russian Isolate and Sublayer rows use Cyrillic letters only
2026-10-16 03:18:14 +07:00
BFlat 6048fd6b8e Merge pull request #2275 from thejdubb02/fix/cmyk-page-group-isolated
PDF export: a CMYK page without blending through is an isolated group (#2156)
2026-10-16 03:17:57 +07:00
BFlat e479e62317 Merge pull request #2271 from gorkematlyn/upstream-pdf-panic
PDF.R1: never panic on a damaged array or dictionary in an imported PDF
2026-10-16 03:17:40 +07:00
BFlat 8f1d730ccb Merge pull request #2214 from dotCooCoo/feat/outline-object-type-art
Type: type drawn as glyph outlines keeps its underline, stroke weight, gradients and patterns
2026-10-16 03:17:22 +07:00
BFlat 043f2dff3c Merge pull request #2215 from dotCooCoo/fix/export-selection-keeps-effects
Export Selection: the crop takes in what each object's effects draw
2026-10-16 03:17:05 +07:00
BFlat b8d1bdea40 Merge pull request #2219 from dotCooCoo/feat/print-fallback-font-warning
Print: Print and Print Preview warn when type prints in the fallback font
2026-10-16 03:16:49 +07:00
BFlat 8ca5615dca Merge pull request #2242 from dotCooCoo/fix/data-set-sets-objects-in-groups
Variables: selecting a data set sets the objects inside a group that it shows
2026-10-16 03:16:35 +07:00
BFlat 0a0d22df57 Merge pull request #2250 from dotCooCoo/fix/variable-binding-errors
Variables: binding errors name the command and say when a layer is hidden
2026-10-16 03:16:19 +07:00
BFlat f3eab99283 Merge pull request #2226 from dotCooCoo/feat/update-data-set-keeps-own-values
Variables: Update Data Set writes only the variables the active data set holds
2026-10-16 03:16:03 +07:00
BFlat f253d2b3e3 Merge pull request #2229 from dotCooCoo/fix/pen-cursor-asterisk
Pen: the new-path asterisk leaves the pointer once a path is started
2026-10-16 03:15:47 +07:00
BFlat 70723a799b Merge pull request #2234 from dotCooCoo/feat/proof-setup-tritanopia
View: Proof Setup simulates tritanopia
2026-10-16 03:15:32 +07:00
BFlat 9bbe74bd19 Merge pull request #2236 from dotCooCoo/feat/transform-alt-enter-copy
Transform: Alt+Enter applies a value to a copy of the selection
2026-10-16 03:15:17 +07:00
BFlat f3363bddc2 Merge pull request #2246 from dotCooCoo/feat/pencil-keep-selected
Pencil and Paintbrush: with Keep selected off, a drawn path is not left selected
2026-10-16 03:14:56 +07:00
BFlat 80f084d8cf Merge pull request #2247 from dotCooCoo/feat/new-swatch-global-process
Swatches: Ctrl/Cmd+Shift-click on New Swatch makes a global process color
2026-10-16 03:14:41 +07:00
BFlat f614428a92 Merge pull request #2252 from dotCooCoo/feat/drop-shadow-darkness
Effects: Drop Shadow has Darkness, the object's own colors with black added
2026-10-16 03:14:23 +07:00
BFlat 7f899ef293 Merge pull request #2254 from dotCooCoo/feat/shift-tab-panels
Window: Shift+Tab shows and hides the panels but leaves the toolbar and the Control bar
2026-10-16 03:14:03 +07:00
BFlat e3e290d43b Merge pull request #2256 from dotCooCoo/feat/draw-inside-double-click
Draw Inside: a double-click outside the object returns to Draw Normal
2026-10-16 03:13:41 +07:00
BFlat b069019cdd Merge pull request #2257 from dotCooCoo/feat/sample-color-from-screen
Color: Sample Color from Screen picks a color anywhere on the screen
2026-10-16 03:13:25 +07:00
BFlat e55122afc5 Merge pull request #2258 from dotCooCoo/feat/control-bar-isolation
Control bar: buttons isolate the selected object and exit isolation mode
2026-10-16 03:13:08 +07:00
bflatastic 73f3731dbf Properties: the flip buttons keep the reference app's Properties names (#1910)
#2227 renamed them Flip Horizontal and Flip Vertical; what they do is unchanged. The reference app's Properties panel calls them Flip Along Horizontal Axis and Flip Along Vertical Axis (the Transform panel's menu keeps Flip Horizontal and Flip Vertical), so the labels and their catalog rows come back.
2026-10-16 02:56:55 +07:00
bflatastic 5e374712dc i18n(bg): Reset Tracking and Kerning 2026-10-16 02:56:55 +07:00
dotCooCoo d726f6596c Layers: Ctrl/Cmd+Alt-click on an eye switches the other layers between Outline and Preview
A Ctrl/Cmd+Alt-click on a row's eye in the Layers panel ran Hide Others
or Show All Layers, as an Alt-click does. It now runs Outline Others for
the row's layer (layer.outlineOthers), or Preview All Layers
(layer.previewAll) when every other top-level layer is in Outline
already. Each is one undo step. Alt-click and Ctrl/Cmd-click on an eye
keep their actions.

Docs: docs/mcp.md, docs/target-app-parity.md.
2026-10-16 02:56:35 +07:00
sanyamsingh001andCodex 98511401a0 G1: Fix intermediate overflow in adjoining width adjustments
Co-authored-by: Codex <noreply@openai.com>
2026-10-16 02:56:35 +07:00
Marco Arnulfo f2f1945973 Paste in Place: art copied from off the artboards goes back where it was (fixes #1924) 2026-10-16 02:56:35 +07:00
dotCooCoo d35ed26b0f Fix #1692: tabbing through a hex field no longer resets the color
In the Color Picker, Tab out of an edited field gives the next field the
focus in the same frame, and the picker applies the edit once it has
drawn its fields. The # field after Y took the focus showing the color
from before the edit and kept that text while it had the focus, so the
next Tab committed it and reset every other field. Shift+Tab into the #
field from K had the same effect. Swatch Options and New Swatch draw a
copy of the field, and Tab from the last component field into it had the
same effect there.

widgets::hex_field and the Swatch Options copy now show the current
color until something is typed into them, also while they have the
focus, and commit only what was typed. The change covers the # fields of
the Color Picker, Swatch Options, New Swatch, the Color panel, Color
Themes, Recolor Artwork, Document Setup and Define Perspective Grid.

widgets::opt_field, which draws the Stroke panel's dash and gap fields,
kept its text the same way: passing through a blank gap after typing a
dash committed the blank, and the panel applied the same dash pattern
again. It gets the same change. When its value changes while it has the
focus and nothing has been typed into it, all of the new value is
selected, as on keyboard focus.
2026-10-16 02:56:35 +07:00
dotCooCoo aaa7359c7b Part of #1692: Tab in the Color Picker goes through one color model's fields before the next
The Color Picker drew its value fields as one grid, row by row. Tab
moves through the fields in the order they are drawn, so it went H, L,
S, a, B, b, R, C, G, M, B, Y, # and K, from one color model to the
other on every row.

HSB, RGB and the hex field are now in one grid, and Lab and CMYK are in
a second grid beside it. Tab goes through H, S, B, R, G, B and #, then
L, a, b, C, M, Y and K. The dialog looks as before: K's row is as tall
as the hex field's row beside it.
2026-10-16 02:56:35 +07:00
Marco Arnulfo 7608639021 Type: a colour picked while typing keeps what was typed (fixes #1950)
The Color panel and the Color Picker preview a colour in an interaction.
While typing, that interaction joined the open typing session and
previewed from the document before the typing, so new type came back as
its placeholder text. Typing in progress is now kept as its own step
before another interaction begins, as Undo already does.
2026-10-16 02:56:35 +07:00
Gert Pellin e6170de1a2 Transform commands: a string for an optional number is an error (#1952)
object.setBounds read x, y, width and height with f64_or, which falls back
to the current value for anything that isn't a JSON number, so
{"width": "60 mm"} returned ok and changed nothing. object.move,
object.nudge, object.rotate, object.scale (sy) and object.shear did the
same with their optional numbers. A value that is neither a number nor
null is now a BadParams error naming the key, as a missing required
number already is.
2026-10-16 02:56:35 +07:00
MarekSpodBiedry a0f8a88e82 Paint: picking another pattern swatch keeps the pattern transform (#1970) 2026-10-16 02:56:35 +07:00
Ayberk A. 6d898558fd i18n: the notes for an EPS or .ai whose layers weren't read are translated (#2035)
The importer wraps its reason in "the file's layers weren't read ({why}):
it comes in as its page, in one layer" (and, for an .ai, "... from its
editing data ({why}): they come from its PDF part"). The reasons had @msg
rows, the wrappers none, so after "Opened with 1 note(s):" the whole note
stayed English. The two templates are now in every language that
translates messages (and pt-br, which has the reasons), and the reason
inside is translated through them. These notes are pushed as warnings, so
the message scan doesn't see them: a test checks them in each language.

"<Clip Group>" already has a French entry on main; layer names such as
"Layer 1" are stored names and stay as they are.
2026-10-16 02:56:35 +07:00
Ayberk A. 5ff34782cb color.loadProfile: say that a loaded profile lasts for the run (#1955)
The profile is registered in the process's colour registry only, so the
next `vectorcraft-cli run` (or the next launch of the app) doesn't know it
and edit.colorSettings falls back to the built-in profile. The command's
description now says so, and that the profile has to be loaded again in
each run that names it. Keeping profiles across runs would need a place in
the preferences to remember them, which is left for the maintainers.
2026-10-16 02:56:35 +07:00
Ayberk A. 07c6b938bc Shortcuts: + selects the Add Anchor Point tool (#2142)
The tool's default key is "+", and `shortcuts::parse` split a bare "+" as a
separator with nothing on either side: the key part came out empty, so the
shortcut didn't parse, `tool_for_key` found no tool for a typed "+" and the
key did nothing. "-" (Delete Anchor Point) has no separator to trip on, which
is why it worked. A bare "+" is now the key itself, the "=" key, as "Cmd++"
already was, so "+" typed with Shift on a US layout, by a layout's own "+"
key or on the numpad selects the tool.
2026-10-16 02:56:35 +07:00