Commit Graph
6874 Commits
Author SHA1 Message Date
BFlat b5b35cc83f Merge pull request #4875 from Taha-Mahmoodi/fix/2651-repeat-options-preview
Fix #2651: Grid Repeat Options has a Preview checkbox
2026-10-31 20:14:21 +07:00
BFlat 7b8a849982 Merge pull request #4811 from mockydevs/fix/svg-mesh-flat-pieces
SVG export: a gradient mesh patch is cut no finer than its colour changes
2026-10-31 20:14:07 +07:00
BFlat b99f46ca75 Merge pull request #4876 from Taha-Mahmoodi/fix/3592-mesh-quad-budget
Fix #3592: a gradient mesh from a file is budgeted at about a million quads
2026-10-31 20:13:56 +07:00
BFlat ca8f7f6970 Merge pull request #4851 from dotCooCoo/fix/shortcut-layout-quote-key
Keyboard Shortcuts: a shortcut on the Turkish Q quotation-mark key shows " and runs
2026-10-31 20:13:39 +07:00
BFlat e3854a6023 Merge pull request #4782 from dotCooCoo/fix/paint-keys-shift-only
Shortcuts: Shift+Comma and Shift+Period follow key positions only with Shift alone
2026-10-31 20:13:23 +07:00
BFlat 58de20a4b1 Merge pull request #4846 from dotCooCoo/fix/homography-apply-finite
Geometry: a perspective point that overflows maps to nothing instead of infinity
2026-10-31 20:13:06 +07:00
BFlat 969f7f66c3 Merge pull request #4804 from dotCooCoo/feat/perspective-shift-constrains-move
Perspective Selection: Shift constrains a move to the plane's axes and diagonals
2026-10-31 20:12:52 +07:00
BFlat 9269e83b27 Merge pull request #4858 from dotCooCoo/fix/reduce-basic-keeps-selected-fill
Appearance: Reduce to Basic Appearance keeps the selected fill or stroke row
2026-10-31 20:12:37 +07:00
BFlat 62f2f327d4 Merge pull request #4863 from dotCooCoo/fix/add-new-fill-above-selected
Appearance: Add New Fill copies the selected fill row right above it
2026-10-31 20:12:22 +07:00
BFlat 73627d806b Merge pull request #4866 from dotCooCoo/fix/issue-3229
Part of #3229: setting type in a font or style that isn't available warns
2026-10-31 20:12:08 +07:00
BFlat f19e4ff806 Merge pull request #4852 from dotCooCoo/fix/replace-font-hidden-locked
Find Font: Change and Change All leave hidden and locked text alone
2026-10-31 20:11:51 +07:00
BFlat ec40a39749 Merge pull request #4853 from dotCooCoo/fix/opacity-mask-layers
Transparency: Make Opacity Mask over several layers masks their art
2026-10-31 20:11:36 +07:00
BFlat 4992600f0e Merge pull request #4787 from dotCooCoo/fix/pattern-undecoded-marks
Render: pattern tiles draw undecoded-image marks when the view does
2026-10-31 20:11:22 +07:00
BFlat 9fe12a7264 Merge pull request #4789 from dotCooCoo/fix/mask-root-node-mask
Render: an object used as an opacity mask keeps its own opacity mask
2026-10-31 20:11:06 +07:00
BFlat 94d2d068a9 Merge pull request #4828 from dotCooCoo/fix/brush-warp-mask
Brushes: opacity masks on art brush pieces bend with the art
2026-10-31 20:10:52 +07:00
BFlat 72a5442313 Merge pull request #4838 from dotCooCoo/feat/blob-brush-angle-roundness
Blob Brush: Tool Options set the brush's Angle and Roundness
2026-10-31 20:10:37 +07:00
BFlat 52a33d3d8d Merge pull request #4840 from dotCooCoo/fix/dxf-dxf-alter-paths-if-necessary
DXF export: Alter Paths for Appearance outlines only strokes a CAD line can't draw
2026-10-31 20:10:21 +07:00
BFlat 6dff0095ea Merge pull request #4841 from dotCooCoo/fix/dxf-dxf-ellipse
DXF export: ellipses and unevenly scaled circles are written as ELLIPSE
2026-10-31 20:10:07 +07:00
BFlat 6612400fb9 Merge pull request #4839 from dotCooCoo/fix/dxf-dxf-line-entity
DXF export: an open path of one straight segment is written as a LINE
2026-10-31 20:09:52 +07:00
BFlat 40c3519af1 Merge pull request #4842 from dotCooCoo/fix/assemble-keeps-visibility
Outline Stroke, Expand: hidden and locked objects stay hidden and locked
2026-10-31 20:09:38 +07:00
BFlat ce2ca3c017 Merge pull request #4843 from dotCooCoo/fix/select-font-hidden-locked
Find Font: Find leaves out hidden and locked text
2026-10-31 20:09:23 +07:00
BFlat 4094658641 Merge pull request #4844 from dotCooCoo/fix/swatch-delete-plural
Swatches: the delete prompt for several swatches uses each language's plural forms
2026-10-31 20:09:07 +07:00
BFlat 5796c886a4 Merge pull request #4847 from dotCooCoo/fix/docs-mcp-type-underline-fragment
Docs: the type.underline line no longer repeats the end of the sentence before it
2026-10-31 20:08:51 +07:00
BFlat 800c9b9f18 Merge pull request #4848 from dotCooCoo/fix/issue-4837
Fix #4837: the saved color scheme, accent and canvas color show at launch
2026-10-31 20:08:36 +07:00
BFlat d4f8733176 Merge pull request #4859 from dotCooCoo/fix/select-same-fill-live-paint
Select Same: Fill Color from a Live Paint face stays in its Live Paint group
2026-10-31 20:08:22 +07:00
BFlat 40eceb422c Merge pull request #4857 from dotCooCoo/fix/issue-4819
Fix #4819: Convert to Smooth and Corner convert a selected blend's spine
2026-10-31 20:08:07 +07:00
BFlat 31c51b7f45 Merge pull request #4874 from dotCooCoo/fix/issue-4516
Part of #4516: Windows renders start workers only for the cores the process may use
2026-10-31 20:07:53 +07:00
BFlat 2f2b731f03 Merge pull request #4869 from dotCooCoo/fix/issue-4864
Fix #4864: a search pick of an Asset Export command opens the panel
2026-10-31 20:07:37 +07:00
BFlat 257aa3e1f9 Merge pull request #4867 from dotCooCoo/fix/web-shortcut-key-before-text
Shortcuts: in the web build a key-position shortcut uses the key of the same press
2026-10-31 20:07:23 +07:00
Taha-Mahmoodi 59eb658fd7 Fix #2651: Grid Repeat Options has a Preview checkbox
The grid options' public page lists a Preview option: the repeat on the canvas follows the fields while the dialog is open. Object > Repeat > Options had none, so a change showed only after OK. Now a Grid Repeat's dialog has the checkbox: Cancel puts the original back without a history step, OK keeps the previewed values as one undo step. Radial and Mirror Repeat Options are left as they are, since their public pages list no Preview.
2026-10-31 19:43:16 +07:00
bflatastic 2c28ccf020 Gradient mesh: flat pieces follow the quad budget's subdivision
A mesh over the quad budget is cut coarser than asked (#3592); its flat pieces now use the same subdivision, so each patch takes its own quads.
2026-10-31 19:43:16 +07:00
Taha-Mahmoodi a1a3a99104 Fix #3592: a gradient mesh from a file is budgeted at about a million quads
A mesh read from a file can have any number of patches, and the view any zoom: a 150 x 150 mesh from a 3 MB file exported at 20x asked for about 23 million quads (2 GB), and the command's own cap of 50 rows and columns does not apply to a loaded one. One tessellation now makes at most 1,048,576 quads, the subdivision per patch giving way before that, and a mesh with more patches than that is malformed, like a point count that does not fit.
2026-10-31 19:43:16 +07:00
dotCooCoo b13b3260cd Keyboard Shortcuts: a shortcut on the Turkish Q quotation-mark key shows " and runs
Squashed from #4851 onto main.
2026-10-31 19:43:16 +07:00
dotCooCoo f28de75a22 Shortcuts: an exact Shift binding for the typed character wins over a plain binding at Shift+Comma or Shift+Period 2026-10-31 19:43:16 +07:00
dotCooCoo 8363c815ec Perspective: a transform's overflow fallback keeps each entry's powers of two apart
When the conjugate a ∘ self ∘ a⁻¹ overflows, conjugated now forms every
entry of the product as a sum of terms whose factors are split into a
mantissa and a power of two, and scales the whole product by one power of
two from its w row at the end. Scaling each partial product to a largest
entry of 1 could round an entry to 0 that the next factor would restore,
so a projection with entries far apart in size, such as a scale by
(1e160, 1e-160) seen through the same scale, was removed and the art drew
flat.
2026-10-31 19:43:16 +07:00
dotCooCoo ae76455723 Perspective Selection: a move of loose art keeps its plane when 4 clears the active plane
The move drag remembers the plane it places loose art on. Pressing 4
during the drag, or dragging on after it, previews and commits the move
on that plane instead of dropping it. A 1-3 key pressed before the drag
threshold also sets the plane the move uses.
2026-10-31 19:43:16 +07:00
Don Omondi 9259434a89 SVG export: a gradient mesh patch is cut no finer than its colour changes
Each patch of a gradient mesh was cut into 8 x 8 flat quads for SVG export,
Object > Expand and the other outputs that cannot shade a mesh, whatever its
colours, so a patch of one colour became 64 identical pieces. Neighbouring
quads are now joined into square blocks wherever the colour changes by no
more than about one 8-bit step across the block; the block's outline runs
through its quads' corners, and a patch that folds over itself is not joined.
2026-10-31 19:43:16 +07:00
dotCooCoo 26173437b9 i18n: Bosnian paint-chip tips name Shift+, and Shift+.
The Bosnian catalog still carried the Color (,) and Gradient (.) rows, which no longer match the toolbar's tips. It now translates Color (, or Shift+,) and Gradient (. or Shift+.) like the other catalogs.
2026-10-31 19:43:16 +07:00
dotCooCoo c711ad42f0 Perspective: a transform's overflow fallback scales each partial product
When the conjugate of a projection overflows, it is now formed one factor
at a time, and each partial product is divided by its largest entry
magnitude. Scaling the affine factors up front let the w row underflow to
0, so a scale by 2 seen through a move by 1e308 returned None and the
projection was removed, though its conjugate is finite.
2026-10-31 19:43:16 +07:00
dotCooCoo c15874ba6e Perspective Selection: Shift constrains each object in its own plane
perspective.move takes constrain: true instead of a plane-space
direction. For each object, the command snaps the move to the nearest
axis or 45-degree diagonal of that object's own plane, so a selection on
several planes keeps every object on a line of its plane. The tool sends
the raw pointer with the flag.

On a diagonal, Snap to Grid now moves along the diagonal by the nearer
per-axis correction, so that edge lands on its gridline.
2026-10-31 19:43:16 +07:00
dotCooCoo 64c776af4c Shortcuts: a bound layout candidate for Shift+Period or Shift+Comma wins over the key position 2026-10-31 19:43:16 +07:00
dotCooCoo 375b413ba6 Perspective: a projection that a transform overflows keeps a w row of 1
When conjugating a projection overflows, the scaled-down result is now divided by the largest entry in its w row. A valid conjugate is no longer dropped by the determinant cutoff at the arbitrary scale, and every point of a kept projection passes the horizon test in apply instead of none.
2026-10-31 19:43:16 +07:00
dotCooCoo 9f64452303 Perspective Selection: Snap to Grid keeps a Shift-constrained move on its axis or diagonal
perspective.move takes an optional constrain: [dx, dy], a plane-space
direction. For an in-plane move, Snap to Grid's correction is projected
onto that direction, so a move the Shift key constrains to a plane axis
or a 45-degree diagonal stays on that line when an object edge lies near
a gridline. The Perspective Selection tool sends the direction for
Shift moves and copies. Moves without the param behave as before.
2026-10-31 19:43:16 +07:00
dotCooCoo 55108efef4 Toolbar: the paint-chip tips name Shift+, and Shift+. instead of < and >
The Color and Gradient tips now read "Color (, or Shift+,)" and
"Gradient (. or Shift+.)". The shortcuts follow the key positions, so on
layouts where Shift at those keys types another character the tips name
the keys to press. The 25 catalogs with these rows and the toolbar
accessibility test follow.
2026-10-31 19:43:16 +07:00
dotCooCoo db38e2e114 Perspective: a projection that a transform overflows is scaled down or removed
When moving type or a symbol instance in perspective makes the
conjugated projection overflow, Homography::conjugated now forms the
product from factors scaled to a largest entry of 1 and returns it at
that scale, which maps every point to the same place. When even the
scaled result is not invertible, the transform removes the projection
and the art is drawn flat, instead of keeping the old projection while
the flat art moves.
2026-10-31 19:43:16 +07:00
dotCooCoo 021fa4a846 Shortcuts: Shift+Comma and Shift+Period follow their key positions only with Shift alone
The key-position match for Shift+Comma and Shift+Period now applies only
when Shift is the only modifier. Cmd/Ctrl+Shift and Alt+Shift presses at
those keys keep their logical key, so the type-size shortcuts on German-like
layouts behave as before. The typing test also checks that no paint command
runs while text is edited.
2026-10-31 19:43:16 +07:00
dotCooCoo 3d345ff95b Geometry: a perspective point that overflows maps to nothing instead of infinity
Homography::apply checked that w is in front of the horizon but not the quotients, so a point with w just above 1e-9 and a large x or y, or a NaN w, mapped to an infinite or NaN point. apply now returns None unless the mapped point is finite. inverse, conjugated and affine_at return None when their result has an entry that is not finite.
2026-10-31 19:43:16 +07:00
dotCooCoo 45b266c805 Appearance: Reduce to Basic Appearance finds the active row in the first selected object
The targets are in paint order, so the first selected object is not always the first target. The active row is now matched against the first selected object wherever it is among them.
2026-10-31 19:43:15 +07:00
dotCooCoo 3a7e81e6c3 Appearance: Add New Fill copies the selected fill row right above it
With a fill row selected in the Appearance panel, Add New Fill now
inserts a copy of that row directly above it and selects the new fill.
Rows already above the selected one stay where they are. Before, the
new fill was always a copy of the topmost fill, added at the top.

The selected row belongs to the first selected object. In a mixed
selection, an object that shares that row gets the copy above its own
equal row; an object that does not share it gets a copy of its top
fill on top, as before. With a stroke row selected, or with `ids` or
`target: "contents"`, Add New Fill works as before.

The panel drops rows that were Cmd- or Shift-clicked together when the
active row changes outside the panel, so after Add New Fill (button,
menu or shortcut) only the new fill is selected.
2026-10-31 19:43:15 +07:00
dotCooCoo 65b6606d90 Part of #3229: setting type in a font or style that isn't available warns
Squashed from #4866 onto main.
2026-10-31 19:43:15 +07:00