Commit Graph
3005 Commits
Author SHA1 Message Date
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
dotCooCoo 66dbe40ea6 Export for Screens: the params text and the format error list every format a row writes
The document.exportForScreens params text listed png, png8, jpg, webp,
gif, svg, svgz and pdf for a row's format, and its settings keys left
out svgz. A row of another format VectorCraft writes, such as eps, was
refused with "Export for Screens writes png, png8, jpg, webp, gif, svg,
svgz or pdf". Rows of tiff, bmp, tga and psd are written too, and the
Export for Screens dialog offers TIFF rows.

The params text, its settings keys and the error now list the 12
formats a row writes: png, png8, jpg, webp, gif, tiff, bmp, tga, psd,
svg, svgz and pdf. Which formats a row accepts does not change.
2026-10-16 02:56:34 +07:00
Marco Arnulfo 53c59f06de PDF: an untitled document saved to a file exports titled after it (fixes #2166) 2026-10-16 02:56:34 +07:00
dotCooCoo 513685a221 Docs: the Print section describes printing through the system's print service
The Print section of docs/mcp.md said that File → Print writes the job
as a print-ready PDF and that there is no printer driver. The desktop
app sends the PDF to the system's print service, the web build opens
the browser's print dialog on it, and the PDF File entry in the
Printer list saves it. The section now says so, points to Printing,
and marks the `file.print` reply that follows as the headless one.
2026-10-16 02:56:34 +07:00
dotCooCoo 4a1323ad07 i18n: Russian Isolate and Sublayer rows use Cyrillic letters only
The Russian catalog's Isolate row began with a Latin "A" (U+0041),
"Aизолировать", and the Create New Sublayer and New Sublayer… rows
spelled "подслой" with a Latin "c" (U+0063). The rows now read
"Изолировать", "Создать новый подслой" and "Новый подслой…".

A new test fails when a word in any catalog's translation holds letters
from more than one of the Latin, Cyrillic and Greek scripts.
2026-10-16 02:56:34 +07:00
Justin Willhite 8da47f11f8 PDF export: a CMYK page without blending through is an isolated group (#2156) 2026-10-16 02:56:34 +07:00
bflatastic 18f8a1bdcf PDF import: a damaged array is refused as damaged, not as functions built on one another 2026-10-16 02:56:34 +07:00
Claude 95d27fe390 PDF.R1: never panic on a damaged array or dictionary in an imported PDF
hayro-syntax's Dict::entries still unwraps each value it reads, so a
dictionary cut short (or with a stray token) aborts the import. The
craft-libs ArrayIter now stops at the first unreadable item instead of
panicking, which also means a hostile item after a self-referencing
function or colour space is silently dropped from nests_without_end.

- import_color: `readable(array)` checks every item parses; `items()`
  yields nothing for an unreadable array; `entries()` reads a dictionary
  key by key through get_raw, skipping values that don't parse.
- pages/editing/import_scan: use the helpers instead of raw_iter() and
  Dict::entries().
- nests_without_end refuses a file with an unreadable array.
- Tests: two refusal cases in pdf tests and an .ai cut inside an array
  or dictionary in engine/tests/import_fuzz.rs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KcHisW1vt6pkVPYbzL6Cpg
2026-10-16 02:56:34 +07:00
bflatastic ff7f47119d i18n(bg): rows for the strings this batch adds (Darkness, Isolate Selected Object, Keep selected, Sample Color from Screen, Tritanopia, Panels Except Tools and Control) 2026-10-16 02:56:32 +07:00
BFlat 01c66e51b7 Merge pull request #2016 from EricKuck/fix/ai-pattern-phase
AI import: a pattern fill tiles from its tile's lower left, wherever the definition drew the tile
2026-10-16 02:38:08 +07:00
BFlat 23a0a5f857 Merge pull request #2015 from EricKuck/fix/ai-non-native-art-orientation
AI import: non-native art stays upright unless its placement mirrors it
2026-10-16 02:37:52 +07:00
BFlat 651e2e1a57 Merge pull request #2014 from EricKuck/fix/export-art-over-artboard-groups
SVG export: a chosen artboard's file leaves out the art of other artboards inside a shared group
2026-10-16 02:37:38 +07:00
BFlat 5a5bb73aa9 Merge pull request #2062 from dotCooCoo/fix/page-knockout-group-backdrop
Render: a knockout group drawn over its backdrop counts an element's partial coverage once
2026-10-16 02:37:22 +07:00
BFlat 88e950a0d7 Merge pull request #2073 from dotCooCoo/feat/outline-object-nested-type
Effects: type in a group with a geometry effect keeps its transparency, mask, effects and visibility
2026-10-16 02:37:05 +07:00
BFlat 99bdcc6633 Merge pull request #2232 from MarekSpodBiedry/issue-2086
Menus: keep scroll bar clear of shortcuts and stop above the status bar (#2086)
2026-10-16 02:36:44 +07:00
BFlat ef53890c28 Merge pull request #2109 from dotCooCoo/fix/area-type-rows-columns-overflow
Type: area type opens and lays out with at most 100 rows and 100 columns
2026-10-16 02:36:23 +07:00
BFlat 011a1a0314 Merge pull request #2108 from dotCooCoo/fix/issue-1770-rosette-spurs
Fix #1770: Shape Builder merges leave no spur or split outline when shared edges differ by rounding
2026-10-16 02:36:05 +07:00
BFlat 17c512f5c9 Merge pull request #2055 from dotCooCoo/fix/copied-artboard-free-id
Artboards: copied artboards take a free id and keep their own guides
2026-10-16 02:35:47 +07:00
BFlat ec602d7e27 Merge pull request #2114 from dotCooCoo/fix/moved-rasters-test-fonts-steady
Render tests: two moved raster tests no longer run alongside the tests that add fonts
2026-10-16 02:35:30 +07:00
BFlat bb5f16c101 Merge pull request #2118 from dotCooCoo/fix/alt-drag-tests-created-stamp
Tests: the Alt-drag tests no longer fail when their documents are made in different seconds
2026-10-16 02:35:13 +07:00
BFlat b8041d3745 Merge pull request #2235 from Messhias/fix/2094-create-outlines-shortcut
Fix #2094: Cmd+Shift+O Create Outlines while typing
2026-10-16 02:34:55 +07:00
BFlat 0205a3332f Merge pull request #2227 from Messhias/fix/1910-reflect-axis
fix(G11): Reflect X/Y flip the correct axes (#1910)
2026-10-16 02:34:42 +07:00
BFlat a7425f27c1 Merge pull request #2176 from Silvertree2010/fix/2078-when-i-click-pixels-the-unit-of
Make New Document preset cards follow the chosen units
2026-10-16 02:34:25 +07:00
BFlat fb803dbdae Merge pull request #2158 from Silvertree2010/fix/2084-the-orientation-selection-is-wro
Fix New Document orientation on category tabs and preset cards
2026-10-16 02:34:08 +07:00
BFlat 81420b87c8 Merge pull request #2204 from Silvertree2010/fix/h1429-svg-export-writes-control-charac
Make SVG export of type with control characters well-formed
2026-10-16 02:33:51 +07:00
BFlat 57b5931c83 Merge pull request #2022 from Silvertree2010/fix/h797-negative-picas-points-value-2p6
Apply the sign of a picas+points value to the whole value
2026-10-16 02:33:32 +07:00
BFlat ce02a42f35 Merge pull request #2069 from Silvertree2010/fix/h839-field-arithmetic-rejects-followe
Evaluate * and / left to right in field arithmetic
2026-10-16 02:33:15 +07:00
BFlat 4b60fcead7 Merge pull request #2209 from Silvertree2010/fix/h1425-field-arithmetic-rejects-a-negat
Accept a negative operand after an operator in field arithmetic
2026-10-16 02:32:59 +07:00
dotCooCoo 3bef84aaa6 Type: type drawn as glyph outlines keeps its underline, stroke weight, gradients and patterns
Type is drawn as its glyph outlines under a geometry effect, in EMF and
WMF export, in DXF export when it is written as outlines, through
Flatten Transparency with Convert All Text to Outlines, and inside an
envelope. Those outlines differed from the type the canvas draws in
four ways. They had no underline or strikethrough bars. A character
stroke on scaled type kept its unscaled weight. An unplaced gradient was
fitted to the glyphs it painted instead of the layout box. A run's
pattern tiles stayed in document space instead of scaling and turning
with the type. A group's or layer's own fills and strokes also painted
the glyphs of the type in it without the bars.

The outlines now include each run's underline and strikethrough bars,
as the canvas has drawn them since #850. Each run's path is made in
text space with its unplaced gradients fixed to the layout box, then
placed by the type's transform, which also scales its stroke weight
and dashes and transforms its pattern tiles. The type's own fills and
strokes have their unplaced gradients fixed to the bounding box of the
layout box in the document, where the canvas fits them.

Geometry effects that move or scale the outlines move and scale the
type's gradients with them: the type's own effects, also inside an
envelope and after Flatten Transparency has converted the type to
outlines, and the effects of a group, symbol instance or envelope that
holds the type. outline_text marks its group with a new node field,
type_outlines, which is saved with the document. reshape_leaves maps
the placed gradients in each marked group through the map that takes
the group's bounds before the effects onto its bounds after them. A
scale out of proportion stretches a radial gradient into an ellipse
and turns the isolines of a diagonal linear gradient, as it does on
type scaled by its own transform. Placed gradients outside those
groups stay where they are.
2026-10-16 02:26:15 +07:00