Commit Graph
8720 Commits
Author SHA1 Message Date
Adithya Shankaran a455e72bf8 Automation roots: refuse COM¹ to LPT³ as Windows device names 2026-11-06 14:34:58 +07:00
BFlat 91efec6cec Merge pull request #5895 from kler/swedish-ui-2026-11-06
i18n(sv): translate 1432 new strings, use the agreed terms in 2
2026-11-06 15:34:21 +08:00
BFlat 267ea8a852 Merge pull request #5894 from jayzed80/fix/eps-bitshift-min
fix(eps): bitshift by the most negative integer no longer overflows on negation
2026-11-06 15:34:06 +08:00
Patrik LermonandClaude Opus 5.5 d98e8e44c7 i18n(sv): translate 1432 new strings, use the agreed terms in 2
Brings the Swedish catalog up to date with upstream main (4fc4c6576).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:21:42 +07:00
jayzed80 543b0de0b4 fix(eps): bitshift by the most negative integer no longer overflows on negation
Negating i64::MIN panicked in debug builds. Use saturating_neg, as Op::Neg already does.
2026-11-06 14:21:38 +07:00
BFlat ab95d51b1f Merge pull request #5893 from dotCooCoo/fix/empty-thread-frame-style
Text: empty later frames preserve an edited paragraph style
2026-11-06 15:21:27 +08:00
dotCooCoo b0f383a1ab Text: empty later frames preserve an edited paragraph style 2026-11-06 14:08:37 +07:00
BFlat 1444ce9e0f Merge pull request #5892 from dotCooCoo/docs/ai-symbols-need-layers
Docs: .ai symbols are read with the file's layers
2026-11-06 15:04:23 +08:00
dotCooCoo def29d0f97 Docs: .ai symbols are read with the file's layers
A .ai that comes in as its page or PDF part (editing data with no layers, layers that can't be read, or a page fallback) gets none of the editing data's symbols: layered_ai_from fills symbols only from build_from. The editing-data paragraph now says so.
2026-11-06 14:04:04 +07:00
BFlat c7b717d801 Merge pull request #5888 from dotCooCoo/fix/flag-params-switch-or
Commands: true/false flags reject other values everywhere
2026-11-06 14:48:04 +08:00
BFlat 804c3b09d8 Merge pull request #5886 from dotCooCoo/fix/ai-no-layers-active-artboard
.ai import: a file whose editing data has no layers also opens on its active artboard
2026-11-06 14:47:49 +08:00
dotCooCoo b5da39d7b5 Commands: true/false flags reject other values everywhere
The remaining flags under crates/engine/src/cmd that read a boolean with
get(..).and_then(Value::as_bool).unwrap_or(..) now go through switch_or,
so a value such as "false" or 1 is an error instead of the default.
Omitting a flag or giving null keeps the old behavior.

- effect.move: copy
- aligned on the appearance.*, stroke.set, transparency.set and effect.*
  commands, checked before any early return
- transparency.viewOpacityMask: on
- view.printTiling: on
- plugin.install: replace and allowHeavy, checked for every plug-in
- edit.clear: guides, and path.deleteAnchors' read of it
- text.create and text.createInPath: vertical (already refused by
  check_switches, so their behavior is unchanged)
2026-11-06 13:47:16 +07:00
dotCooCoo 31456a0cec .ai import: a file whose editing data has no layers also opens on its active artboard 2026-11-06 13:47:16 +07:00
BFlat 4fc4c65763 Merge pull request #5885 from dotCooCoo/fix/ai-tab-stops-shared
.ai import: legacy type keeps one copy of tab stops its paragraphs share
2026-11-06 14:34:55 +08:00
dotCooCoo aac21aa076 .ai import: legacy type keeps one copy of tab stops its paragraphs share 2026-11-06 13:22:36 +07:00
BFlat 08be8b2d7c Merge pull request #5883 from dotCooCoo/fix/profile-stroke-crop
Rendering: open width-profile strokes outline only near the view
2026-11-06 13:56:09 +08:00
BFlat 8585fd28c2 Merge pull request #5884 from dotCooCoo/test/fitted-text-scale-changes-fit
Tests: a fitted text test changes its fit scale
2026-11-06 13:55:59 +08:00
BFlat 27e9f331ad Merge pull request #5882 from ruchirguitar/i18n/hindi-complete
i18n: add Hindi interface and message catalog
2026-11-06 13:55:48 +08:00
dotCooCoo e6819a86f0 Rendering: open width-profile strokes outline only near the view 2026-11-06 12:42:33 +07:00
dotCooCoo b75b1548d4 Tests: a fitted text test changes its fit scale
The regression test for rebuilding fitted area type after a scale change
used text that overflowed at the minimum size both before and after the
change, so both layouts used the same fit scale and the pixel comparison
did not depend on the fit.

The fixture is now 2 pt type in a small frame, drawn 20 times zoomed in.
It fits at 0.7 of its size, and at 0.733 after a 1.5 times scale. The
test asserts that the two fit scales differ and that the words set at the
earlier fit draw different pixels, and keeps the comparison with a fresh
renderer and the check that the geometry is not reused.
2026-11-06 12:42:26 +07:00
ruchirguitar 70f798b71d i18n: add Hindi interface and message catalog 2026-11-06 12:40:10 +07:00
BFlat 1ab03cb2a1 Merge pull request #5881 from dotCooCoo/fix/selected-hover-widgets
Selection: empty-canvas hover skips distant widgets in large selections
2026-11-06 13:18:56 +08:00
dotCooCoo 2fa3276789 Selection: empty-canvas hover skips distant widgets in large selections 2026-11-06 12:06:27 +07:00
BFlat 6b3a34f016 Merge pull request #5880 from dotCooCoo/docs/format-parity-guides-known-failures
Docs: the .ai notes no longer list guides as a known failure
2026-11-06 13:04:43 +08:00
dotCooCoo 0473fcad58 Docs: the .ai notes no longer list guides as a known failure
The Known failures bullet in docs/file-format-parity.md kept stale copies
of its earlier wording after several merges: guides were still listed as
lost although they open as ruler guides since #5057, and the same clauses
about #868, #1027 and #758 repeated several times. The bullet now states
each fact once, and keeps every legacy .ai reading note it carried.
2026-11-06 12:04:14 +07:00
BFlat 22ff7db4ce Merge pull request #5879 from dotCooCoo/perf/direct-cursor-single-hit
Reuse hit result for Direct Selection cursor
2026-11-06 12:43:57 +08:00
dotCooCoo 64c38d29c7 Reuse hit result for Direct Selection cursor 2026-11-06 11:31:21 +07:00
BFlat 17e56e3dc9 Merge pull request #5874 from dotCooCoo/fix/new-art-basic-boolean-param
Reject invalid New Art Basic parameters
2026-11-06 12:31:07 +08:00
dotCooCoo 8a730bab6b Reject invalid New Art Basic parameters 2026-11-06 11:15:35 +07:00
BFlat 3c7d9e1f90 Merge pull request #5873 from dotCooCoo/perf/long-path-hover
Speed up hover hits on long plain paths
2026-11-06 12:14:58 +08:00
dotCooCoo 0416f115e0 Speed up hover hits on long plain paths 2026-11-06 11:00:14 +07:00
BFlat ad747b15f7 Merge pull request #5872 from dotCooCoo/fix/guide-lock-boolean-param
Reject invalid Guide Lock parameters
2026-11-06 11:56:38 +08:00
dotCooCoo b26bd3d472 Reject invalid Guide Lock parameters 2026-11-06 10:41:08 +07:00
BFlat 56c1033820 Merge pull request #5871 from dotCooCoo/fix/ai-symbol-reader-shares-budgets
.ai import: symbol, pattern and brush definitions share the file's blend and envelope limits
2026-11-06 11:40:23 +08:00
dotCooCoo 49583ef632 .ai import: symbol, pattern and brush definitions share the file's blend and envelope limits
Each definition's reader started with fresh blend layout and envelope
check budgets, so a file with many symbols, patterns or brush art
sections got those limits again for every definition. The reader of a
definition now takes the import's remaining budgets and hands back what
is left after reading, whether the definition is kept or not.
2026-11-06 10:28:08 +07:00
BFlat 1e0efa77d1 Merge pull request #5869 from dotCooCoo/fix/transparency-grid-boolean-param
Reject invalid Transparency Grid parameters
2026-11-06 11:27:54 +08:00
dotCooCoo 398131b9cc Reject invalid Transparency Grid parameters 2026-11-06 10:12:42 +07:00
BFlat 2628ee3069 Merge pull request #5868 from dotCooCoo/perf/transform-many-lookups
Reuse selected object locations for large transforms
2026-11-06 11:10:32 +08:00
dotCooCoo 48a3710fae Reuse selected object locations for large transforms 2026-11-06 09:58:43 +07:00
BFlat 83f9b2953f Merge pull request #5867 from dotCooCoo/fix/slice-toggle-boolean-params
Reject invalid Slice toggle parameters
2026-11-06 10:58:17 +08:00
dotCooCoo b4a4f2aa4f Reject invalid Slice toggle parameters 2026-11-06 09:42:35 +07:00
BFlat f7fe3a0f43 Merge pull request #5866 from dotCooCoo/fix/char-strokes-scale-reuse
Rebuild fitted text geometry after scaling
2026-11-06 10:37:39 +08:00
dotCooCoo 25da816a08 Rebuild fitted text geometry after scaling 2026-11-06 09:37:22 +07:00
BFlat ac5a3c5163 Merge pull request #5865 from dotCooCoo/perf/char-strokes-move
Reuse text outlines across moves
2026-11-06 10:06:39 +08:00
dotCooCoo a723f7359a Reuse text outlines across moves 2026-11-06 08:51:36 +07:00
BFlat be3845d1f0 Merge pull request #5863 from mockydevs/feat/properties-artboard-transform-5219
Properties: Edit Artboards shows a Transform section above the artboard options (#5219)
2026-11-06 09:48:10 +08:00
BFlat 6d40518ce4 Merge pull request #5864 from storytold/fix/cmd-box-test-texture-delta
Tests: the Cmd bounding box test clears its texture delta
2026-11-06 09:47:55 +08:00
Don Omondi ae3490d3ba Properties: Edit Artboards shows a Transform section above the artboard options (#5219)
With the Artboard tool, the Properties panel now starts with a Transform
section: the reference point shared with the Transform panel and the
Control bar, the active artboard's X and Y (of that point), W and H with
the Constrain Width and Height Proportions link, its preset and
orientation, and Move and Scale Artwork with Artboard. The Artboards
section follows with the name, Artboard Options and Fill. A new W or H
now keeps the reference point in place, as in the Transform panel.
2026-11-06 08:34:46 +07:00
bflatastic 138bab6fd3 Tests: the Cmd bounding box test clears its texture delta
The render worker's frame can land in any of its frames, and dropping a
delta that is not empty panics.
2026-11-06 08:34:25 +07:00
BFlat 177005bf34 Merge pull request #5861 from mockydevs/fix/value-field-drag-4088
Scrubby labels: the Control bar's Stroke: and Opacity: links scrub their fields (#4088)
2026-11-06 09:22:22 +08:00