Commit Graph
7652 Commits
Author SHA1 Message Date
BFlat d0afe59fdf Merge pull request #5187 from dotCooCoo/fix/ai-os22-g2
.ai import: placed EPS files in the version 7 form are read
2026-11-02 14:52:23 +07:00
BFlat cfc386601c Merge pull request #5198 from dotCooCoo/fix/ai-open-group-at-end
.ai import: a group still open at the end of the art is an error
2026-11-02 14:52:06 +07:00
BFlat a816e28ce8 Merge pull request #5192 from dotCooCoo/feat/save-load-actions
Actions: Save Actions… and Load Actions… save a set to a file and load it back
2026-11-02 14:51:50 +07:00
BFlat f2faa0c484 Merge pull request #5194 from dotCooCoo/fix/shortcuts-commands-that-need-params
Keyboard Shortcuts: commands a key cannot run without a value are not listed
2026-11-02 14:51:33 +07:00
BFlat 0bffec57ce Merge pull request #5199 from dotCooCoo/fix/fonts-in-symbol-definitions
Fonts: Find Font and Replace Missing Fonts reach the type in symbols
2026-11-02 14:51:18 +07:00
BFlat 03e1af5a37 Merge pull request #5185 from dotCooCoo/fix/rtl-manual-kerning-moves-neighbor
Type: manual kerning in right-to-left text spaces the pair it is set on
2026-11-02 14:51:03 +07:00
BFlat a181262663 Merge pull request #5155 from dotCooCoo/fix/ai-os12
.ai import: the document's graphic styles open in the panel with their objects linked
2026-11-02 14:50:48 +07:00
BFlat 522280da7f Merge pull request #5176 from dotCooCoo/fix/ai-os19
.ai import: placed files are found by the folder they keep relative to the document
2026-11-02 14:50:30 +07:00
BFlat af9378b539 Merge pull request #5174 from dotCooCoo/fix/ai-os23-1671
.ai import: a line width of 0 draws as a hairline
2026-11-02 14:50:14 +07:00
BFlat 7dc14ebb8f Merge pull request #5148 from dotCooCoo/fix/ai-os10-path
.ai import: Offset Path, Outline Object and Outline Stroke open live
2026-11-02 14:49:47 +07:00
BFlat 9dbbc0e327 Merge pull request #5147 from dotCooCoo/feat/save-variable-library
Variables: Save Variable Library… writes the variables and data sets as an XML library
2026-11-02 14:49:06 +07:00
BFlat 99620be2eb Merge pull request #5172 from dotCooCoo/feat/action-options-rename
Actions: the panel menu's Action Options… renames the selected action
2026-11-02 14:48:37 +07:00
BFlat a74811c161 Merge pull request #5169 from dotCooCoo/fix/actions-current-set-after-restart
Actions: the current set is kept after a restart
2026-11-02 14:48:19 +07:00
BFlat 2fab3de7b3 Merge pull request #5162 from dotCooCoo/fix/issue-4995
Fix #4995: Above Text moves a Tabs panel that already floats
2026-11-02 14:48:03 +07:00
BFlat 0a5264d56a Merge pull request #5167 from dotCooCoo/fix/issue-785
Fix #785: commands refuse an id that isn't an object id instead of using the selection
2026-11-02 14:47:53 +07:00
bflatastic 1072f9b9bf Repeat: a double-click isolates it only with Double Click To Isolate on 2026-11-02 14:36:15 +07:00
Don Omondi 85138b2652 Repeat isolation: draw the isolated repeat undimmed; test exit, undo and groups
A live object reached the renderer without passing the isolated-object check that groups go
through, so an isolated repeat was dimmed with the art around it. Tests cover leaving isolation
(double-click outside, exitIsolation), undo/redo of an edit inside, and a repeat of a group.
2026-11-02 14:36:15 +07:00
bflatastic 59992ce155 Tests: serial()'s doc comment goes back above it 2026-11-02 14:36:14 +07:00
bflatastic 87979644cd DXF: unicode_escape gets its own doc comment, above escapes' 2026-11-02 14:36:14 +07:00
Don Omondi 55a28d2455 Repeat edit test: compare the repeat's actual settings
RepeatSpec keeps rows, columns and spacing under kind; the test now
compares that, and checks it was read.
2026-11-02 14:36:14 +07:00
Don Omondi b903e2e7e7 Placed-document tests: register the gated loader everywhere
set_loader keeps the first registration, so a test registering blue_page first left the gate
out. Every test in the file now registers gated_blue_page (blue_page while the gate is open).
2026-11-02 14:36:14 +07:00
Max MittelstädtandGPT-5.6-Luna 9b93c609b9 Decode DXF surrogate pairs
Found while testing crates/cad/src/import/text.rs:80

Co-Authored-By: GPT-5.6-Luna <noreply@openai.com>
Co-Authored-By: GPT-6-Luna <noreply@openai.com>
2026-11-02 14:36:14 +07:00
Don Omondi 046e443944 Fix #5054: a double-click on a repeat isolates it to edit its source
A double-click on a Radial, Grid or Mirror Repeat with the Selection
tool enters isolation mode on it. There its source art is selected and
edited as usual (a double-click on type in it switches to the Type tool
on that text) and every copy follows, the repeat keeping its settings.
2026-11-02 14:36:14 +07:00
Don Omondi f4979c7e54 Fix #5152: placed-document bitmap test no longer races its worker
a_ready_bitmap_draws_again_where_its_file_shows assumed the first frame shows placeholders,
but the background worker can make the tiny test bitmaps between scheduling and the frame's
second lookup, so the frame already showed them ("the bitmaps show" failed on FreeBSD CI).
The test's loader now waits until that frame is drawn.
2026-11-02 14:36:14 +07:00
Prin.IngandClaude Haiku 5.5 743f8c526b Filter invalid XML characters from SVG Dublin Core metadata
Found while testing crates/svg/src/export/output.rs:360 (dublin_core, around line 81)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 14:36:13 +07:00
nrq6993-a11y 37bbb00b55 G4: Type orientation menu unchecked for mixed vertical/horizontal selection
Squashed from #4324 onto main.
2026-11-02 14:36:13 +07:00
ruchirguitar 8c0c8b1997 Fix #5218: the artboard navigator's buttons are commands Keyboard Shortcuts lists
Squashed from #5222 onto main.
2026-11-02 14:36:12 +07:00
Don Omondi 62f133fa0b Fix #2898: Up and Down change the corner kind while dragging a widget
Squashed from #5090 onto main.
2026-11-02 14:36:12 +07:00
Don Omondi 9299c64d42 Effect shortcuts: count them among command shortcuts for Enter's precedence
An effect bound to Cmd+Enter wasn't among all_shortcuts, so the active tool took the Enter
before the keymap ran the effect. Effect items' own shortcuts are now listed with the rest.
2026-11-02 14:36:11 +07:00
Prin.IngandClaude Haiku 5.5 35de20b108 Limit the ZIP writer to 65534 files so Archive::open can read it
Found while testing crates/engine/src/cmd/fileio/zip.rs:26 (store, deflate) vs :178 (Archive::open)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 14:36:11 +07:00
Don Omondi ab62873366 Fix #3296: Effect menu items take keyboard shortcuts of their own
Edit > Keyboard Shortcuts lists every Effect menu item under its menu
path and gives each one a shortcut (stored as effect:<id>, mapped to
effect.dialog {effect}, or effect.apply for an effect without options).
The menu shows it, and pressing it opens that effect's dialog for the
selection.
2026-11-02 14:36:11 +07:00
FarmerGeorg 071c0432ba fixed compile bug 2026-11-02 14:36:10 +07:00
FarmerGeorg c3169524ce Layers/Appearance panels: a clicked row takes Delete from a tool that claims it
After a click on a Layers or Appearance row, a plain Delete or
Backspace now goes to that panel even when the active tool claims the
key. Before, the Artboard tool (and Gradient, Width, Puppet Warp…)
took it first: Delete after a click on a layer row deleted the active
artboard, not the layer.

The Type tool still keeps Delete and Backspace while it edits text.
2026-11-02 14:36:10 +07:00
FarmerGeorg a76c1ca50c Preserve a surviving opacity selection. 2026-11-02 14:36:10 +07:00
FarmerGeorgandcoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> ca71c169a2 Update crates/ui-egui/src/panels/appearance.rs
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-11-02 14:36:10 +07:00
FarmerGeorg 260d0fdbaf Appearance panel: test Delete after a row click in a floating window
The native-window harness records each window's texts, so a test can
find a row in it. Delete after a click on the Fill row of an Appearance
panel floating in its own OS window removes the row and leaves the
object.
2026-11-02 14:36:10 +07:00
FarmerGeorg 626ef7dd0e Appearance panel: a drop on Delete keeps the active effect on its row
When an effect that isn't highlighted is dropped on Delete above the
active one, the active effect, the highlight and its anchor now move up
with their rows, and removed rows drop out of the highlight. Before,
they kept their old row numbers and pointed at the wrong effects.
2026-11-02 14:36:10 +07:00
ham9zah f4d1b9b748 Cursors: the glyph list's length counts the type cursors after main's additions 2026-11-02 14:36:09 +07:00
FarmerGeorg 9c59a4dcb4 Appearance panel: UI parity for row editing
- Drag strokes, fills, characters and effects to move them, or drop them
  on the Duplicate or Delete button
- Select several rows with Shift/Cmd-click and move them as one block
- Delete and Backspace remove the highlighted rows, not the selected art
- Row links open their panel (Stroke, Character…) as a flyout
- Stroke weight spinner follows Units > Stroke
- Transparency panel edits the active fill's or stroke's opacity
2026-11-02 14:36:09 +07:00
ham9zah 6aed4718ab Type parity: the Type tools make type in or along a clicked path 2026-11-02 14:36:09 +07:00
ham9zah 601f4854cd Type tool: Alt-click on a closed path makes area type too; type along a closed path stays with Type on a Path 2026-11-02 14:36:09 +07:00
ham9zah 6d948f4679 Type tool icons: the T alone, in a frame, over a wave or beside a down arrow, and in a box with corner handles 2026-11-02 14:36:09 +07:00
ham9zah a141372cd9 Type tool icons: one family, the same T with a frame, wave, arrow or dotted box; the vertical Area and Path tools get their own 2026-11-02 14:36:09 +07:00
ham9zah 6fd542822d Type on a path made with the Type tool shows its brackets at once and flips across its path 2026-11-02 14:36:09 +07:00
ham9zah 93b310c069 Type cursors: the I-beam with a frame or curve badge for area type and type on a path 2026-11-02 14:36:09 +07:00
Taha-Mahmoodi 1b5d11ef4b Units: Preferences › East Asian Type reads, with Q and Ha units (#394)
Squashed from #4845 onto main.
2026-11-02 14:36:08 +07:00
Don Omondi 15a5e64134 #4919: Create Swatch Legend becomes an add-on under Object › Plug-ins › Color Effects with a dialog
addon.color.swatchLegend replaces swatch.legend. The dialog sets columns, chip size, gap, the values shown
and whether to use only the swatches selected in the Swatches panel, with a preview; duplicate value
kinds are refused. The Swatches panel menu item is removed. Catalog rows in all 26 languages.
2026-11-02 14:36:08 +07:00
ham9zah afd9ec036c Type tool: a click on a path's outline makes area type or type on a path, with cursors that say which 2026-11-02 14:36:08 +07:00
el-j 601ab957e6 perf(canvas): zero-copy texture upload and progressive worker frame acceptance (#4615)
Squashed from #4961 onto main.
2026-11-02 14:36:07 +07:00
Wadah Badawi 66e22f4ba1 M2.1: recurse into groups and compound paths for path.average 2026-11-02 14:36:07 +07:00