Commit Graph
748 Commits
Author SHA1 Message Date
bflatastic 9488088d48 Merge main into #1857 2026-11-07 10:21:28 +07:00
bflatastic a7fc90a7aa Merge main into #1857 2026-11-07 10:08:45 +07:00
bflatastic af0c1b2ba7 Merge main into #2050 2026-11-07 10:01:19 +07:00
bflatastic 235a2f3a53 Merge main into #1857 2026-11-07 09:50:38 +07:00
bflatastic 18d0853d9e Merge main into #2050 2026-11-07 09:49:37 +07:00
bflatastic 05530b794e Merge main into #2049 2026-11-07 09:42:38 +07:00
BFlat 4ad444ff19 Merge pull request #1907 from TrevorBrown-dev/fix/baseline-non-text
Auto layout: baseline alignment puts a layer without text with its bottom on the baseline (#1825)
2026-11-07 10:40:21 +08:00
bflatastic e619c509a0 Merge main into #1857 2026-11-07 09:38:13 +07:00
bflatastic 905144708b Merge main into #2050 2026-11-07 09:35:50 +07:00
BFlat 2e7cafe662 Merge pull request #1876 from TrevorBrown-dev/feat/text-style-paragraph
M3: text styles carry paragraph spacing and indent, the list style and the OpenType features (#1829)
2026-11-07 10:29:27 +08:00
BFlat e9fc975aa6 Merge pull request #1756 from dotCooCoo/feat/vector-network-corner-smoothing
M4: closed vectors take corner smoothing
2026-11-07 10:27:00 +08:00
bflatastic 7c457e854c Merge main into #1857 2026-11-07 09:22:00 +07:00
bflatastic 748a75cdd3 Merge main into #2050 2026-11-07 09:20:52 +07:00
bflatastic 3ebd14ad2d Merge main into #1876 2026-11-07 09:10:47 +07:00
bflatastic a632d63602 Merge main into #2049 2026-11-07 09:10:44 +07:00
bflatastic cd3c3a2fd4 Merge main into #2050 2026-11-07 09:10:30 +07:00
bflatastic 5560cbdf3b Merge main into #1857 2026-11-07 09:08:29 +07:00
bflatastic 5aaec67e20 Merge main into #1869 2026-11-07 09:07:56 +07:00
BFlat 11b2ddfaf4 Merge pull request #1958 from MortenHusted/fix/import-variable-id-collisions
M3: importing a file keeps its own variables and styles when their ids are already taken
2026-11-07 10:03:52 +08:00
bflatastic c7570645e8 Merge main into #2050 2026-11-07 08:59:37 +07:00
BFlat 47b5979ef0 Merge pull request #2012 from TrevorBrown-dev/feat/text-direction-1830
M4: a paragraph's base direction can be forced: Text ▸ Text direction ▸ Left to right / Right to left (#1830)
2026-11-07 09:58:59 +08:00
bflatastic 88f6986bda Merge main into #2049 2026-11-07 08:58:17 +07:00
bflatastic 32f2f119f9 Merge main into #2050 2026-11-07 08:57:25 +07:00
BFlat 3a1b698ed4 Merge pull request #2055 from aleksei-suholita/fix/effect-binding-checks
M3: a layer binds an effect's field only when its effect has it, and a bound glass light angle turns round
2026-11-07 09:53:26 +08:00
BFlat 5762212ced Merge pull request #2006 from JonRC/fix/jpeg-quality-srgb-icc
M6: JPG exports take a quality and embed the sRGB profile (#2004)
2026-11-07 09:47:15 +08:00
Trevor Brown 67d5706d3a Merge the maintainer's merge of main (origin/feat/text-style-paragraph) into the local branch 2026-11-06 20:42:55 -05:00
BFlat 6bbaa27f97 Merge pull request #2007 from JonRC/fix/stroke-cap-error-values
fix(engine): an unknown stroke cap lists the caps node.set takes (#2005)
2026-11-07 09:42:05 +08:00
bflatastic 8523dd43b4 Merge main into #2050 2026-11-07 08:41:04 +07:00
Trevor BrownandClaude Fable 5.1 8a7414e3b0 Merge upstream/main into fix/text-mixed-fill-section
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-06 20:40:49 -05:00
Trevor BrownandClaude Fable 5.1 c838f2f587 Merge upstream/main into fix/place-crosshair
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-06 20:40:45 -05:00
Trevor BrownandClaude Fable 5.1 1ba0e1d62a Merge upstream/main into feat/text-style-paragraph
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-06 20:40:40 -05:00
bflatastic 468cab6b2b Merge main into #2055 2026-11-07 08:40:31 +07:00
Trevor BrownandClaude Fable 5.1 5a63c08a78 Merge upstream/main into feat/text-direction-1830
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-06 20:40:21 -05:00
bflatastic 593a689280 Merge main into #2049 2026-11-07 08:39:43 +07:00
BFlat a3460e4711 Merge pull request #1777 from Silvertree2010/fix/h4857-node-reorder-silently-turns-a-ne
Reject negative and fractional indexes in node.reorder
2026-11-07 09:34:48 +08:00
BFlat 97b16702d5 Merge pull request #1900 from Hamza0101/fix/text-layer-name-follows-characters
M4, #1747: a text layer's name follows the characters typed into it
2026-11-07 09:34:20 +08:00
bflatastic 704720d0e1 Merge main into #2050 2026-11-07 08:29:20 +07:00
bflatastic 75847329df Merge main into #2049 2026-11-07 08:29:16 +07:00
bflatastic 642d847329 Merge main into #2055 2026-11-07 08:28:47 +07:00
BFlat 6864ffff4f Merge pull request #1778 from Silvertree2010/fix/h4878-node-create-vector-create-silent
Reject invalid entries in vector.create points instead of dropping them
2026-11-07 09:27:01 +08:00
bflatastic 4d315206bb Merge main into #1876 2026-11-07 08:26:51 +07:00
BFlat 57496ae937 Merge pull request #1783 from Silvertree2010/fix/h5009-page-move-silently-turns-a-negat
Reject negative or fractional index in page.move
2026-11-07 09:21:59 +08:00
bflatastic 4e5f0f8c04 Merge main into #1900 2026-11-07 08:18:31 +07:00
bflatastic fb33f78269 Text styles: a style with no paragraph values keeps a bulleted text linked 2026-11-07 08:17:37 +07:00
BFlat 8f2f194cf4 Merge pull request #1787 from Silvertree2010/fix/h5159-variable-movemode-silently-turns
Reject negative and fractional index in variable.moveMode
2026-11-07 09:15:57 +08:00
bflatastic 30f149b939 Merge main into #2049 2026-11-07 08:11:36 +07:00
bflatastic 7c3a3b2703 Merge main into #2055 2026-11-07 08:07:48 +07:00
Oleksii Sukholita d23cebb12f M3: an effects key naming no effect's field binds nothing (#2055)
Review follow-up: `effects/x/radius`, `effects/0` and `effects` name no
effect's field, but `list_binding` doesn't parse them, so the layer's
check took them for some other field and kept an inert binding. A key
under `effects` that names no effect's field is now refused as well.
2026-11-06 20:18:10 +01:00
Oleksii Sukholita 5bdedc3930 M3: a layer binds an effect's field only when its effect has it
`variable.bind` on a layer checked only the variable's type against the
field's scope, so `effects/0/refraction` on a drop shadow, or a binding on
an effect the layer doesn't have (`effects/9/radius`), was kept and did
nothing. An effect style already refuses both. The layer now uses the same
check: effect `i` must exist and have the field, and the field's type
comes from that effect. A binding an older file has on such a field still
does nothing, and still unbinds.
2026-11-06 19:38:52 +01:00
Filip StrajnarandClaude Opus 5.5 20f1219fbc M1: Set default properties gives new shapes and text the layer's properties (#2028)
Edit ▸ Set default properties put the selected layer's properties into the Paste properties
clipboard and did nothing else: a rectangle drawn afterwards was still the default grey, and what
Copy properties had copied was replaced.

The defaults are now kept apart (`Session::default_props`: one set for shapes, set from any layer
but text, and one for text). Rectangles, ellipses, polygons and stars drawn or clicked with their
tools take the shape defaults: fills, strokes and their settings, effects, opacity, blend and
corners (only where the shape has corners), through `apply_copied_props`, the rules Paste
properties already used (now shared). New text from the Text tool takes a text layer's fills and
font and is laid out at that size. Frames, sections, slices, lines, arrows, vectors and layers made
by commands keep their own look; the help center is silent on those. `edit.setDefaultProperties`
answers `{for: shapes|text, properties}`.

Tests: `default_props_tests::new_shapes_drawn_with_the_tools_take_the_default_properties`,
`setting_defaults_leaves_the_copied_properties_alone`,
`new_text_takes_a_text_layers_defaults_and_shapes_keep_theirs`. Docs: ui-parity.md, ROADMAP.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LvG6E2LxvJ6MuFmiLA6Zqm
2026-11-06 12:55:21 +01:00