Commit Graph
333 Commits
Author SHA1 Message Date
HassanKhan 9ab5c033b1 Merge remote-tracking branch 'upstream/main' into feat-4936-edit-custom-dictionary
# Conflicts:
#	docs/roadmap.md
#	docs/target-app-parity.md
2026-11-10 21:48:55 +05:00
HassanKhan bc3d23bb50 Merge remote-tracking branch 'upstream/main' into feat-4936-edit-custom-dictionary
# Conflicts:
#	docs/gaps.md
#	docs/roadmap.md
#	docs/target-app-parity.md
#	docs/type-parity.md
2026-11-10 21:13:30 +05:00
makesomethingshit a96f442e8c #6369: Reconcile roadmap and parity notes with main 2026-11-11 00:47:14 +09:00
Fabio William Conceição 710e14a33a G5: built-in Game HUD graphic style library 2026-11-10 14:26:37 +00:00
makesomethingshit 129ef8a83b #6369: Merge main and retain halftone roadmap evidence 2026-11-10 22:05:29 +09:00
ruchirguitarandFredApps 243bdb3f63 Fix #5713: resizable icon flyouts and bottom-aligned panel footers (#5973)
* Fix #5713: resize icon flyouts and anchor panel footers

* Fix #5713: reconcile parity evidence with upstream docs

* Fix #5713: keep Actions rows above the pinned footer

* Fix #5713: align documentation dates and regression claims

* Fix #5713: keep short Glyphs grids above the footer

* Fix #5713: pin craft-ui host minimum-size correction

---------

Co-authored-by: FredApps <153173854+FredApps@users.noreply.github.com>
2026-11-10 13:40:55 +01:00
HassanKhan c88828d877 Merge remote-tracking branch 'upstream/main' into feat-4936-edit-custom-dictionary
# Conflicts:
#	docs/gaps.md
#	docs/roadmap.md
#	docs/target-app-parity.md
2026-11-10 16:59:20 +05:00
makesomethingshit 3eea6f1475 #6369: Clarify halftone preview documentation 2026-11-10 20:54:35 +09:00
HassanKhan 0437d987fb #4936: Edit › Edit Custom Dictionary… dialog
The custom dictionary's words in a list, with an Entry field and Add, Delete
and Change, applied on Done, as the public Check and correct spelling page
describes it. The menu item moves from the Spelling submenu to the Edit menu,
where the page puts it.
2026-11-10 15:09:55 +05:00
Fabio William Conceição db97802ce6 G5: record Map Markers on the M10 milestone 2026-11-10 10:09:35 +00:00
BFlat 1341833542 Merge pull request #6407 from Hassan1305/feat-4936-context-menu-auto-spell
#4936: Spelling › Auto Spell Check in the context menu of type
2026-11-10 15:48:01 +07:00
HassanKhan 9220c8526c #4936: the spell check revision rows go in each doc's Revision history 2026-11-10 12:56:29 +05:00
HassanKhan 20b9aa9401 #4936: the M7 row and the Type advanced area rows name Spelling › Auto Spell Check 2026-11-10 12:33:53 +05:00
HassanKhan 27616b1d7b #4936: Spelling › Auto Spell Check in the context menu of type
A right-click on type has a Spelling submenu with Auto Spell Check, as the
public Check and correct spelling page describes. A submenu that holds only
toggles shows their check marks, even in the context menu.
2026-11-10 12:09:02 +05:00
makesomethingshit db419f1aad Hide selection marks during Vector Halftone preview 2026-11-10 15:41:18 +09:00
dotCooCoo 0a7b48503e Merge main into feat/script-run 2026-11-09 20:30:53 -08:00
BFlat a4a53e5ca6 Merge pull request #6328 from makesomethingshit/fix/6307-spinner-hold-pr
#6307: Keep numeric spinner arrows repeating while held
2026-11-10 11:25:06 +07:00
makesomethingshit 7a5925359c #6307: Keep spinner evidence beside numeric field history 2026-11-10 12:47:27 +09:00
HassanKhan 9560b7cfe9 Spelling in the canvas context menu: suggestions, Ignore All and Add to Dictionary on a word Auto Spell Check underlined (part of #4936) 2026-11-10 07:46:05 +05:00
dotCooCoo 2c0d09e079 Scripts: File › Scripts › Other Script… runs JavaScript files
File › Scripts › Other Script… picks a .js or .jsx file, shows a warning
that can be turned off in Preferences › General, and runs the script
against the open documents through the `vc` object. The new
`script.run` and `script.stop` commands run and stop a script over MCP.

- A run is one transaction. Each document it changed gets one undo step
  named Run Script. An uncaught error, a limit or a stop puts every
  document, the paint, the clipboard, menu state and preferences back.
- A command that fails inside a run, or whose result is too large to
  reach the script, is undone and throws an error the script can catch.
- Files a command wrote stay on disk and the report names them, also
  when the run is stopped from the quit question.
- While a script runs, other commands that change anything fail with a
  busy error; MCP reports it as JSON-RPC error -32003.
- In the app the run advances one slice per frame with a Stop button in
  the status bar. A run that adds a great many objects asks whether to
  continue; Stop and Escape end it.
- Commands that change state outside the documents, such as prefs.*,
  plugin.* and file.place.queue, are refused to scripts.

Docs: docs/mcp.md, docs/gaps.md, docs/roadmap.md,
docs/target-app-parity.md.
2026-11-09 18:35:41 -08:00
ruchirguitarandCursor e1b73f38bc G2: Effect Gallery thumbnails and an in-dialog preview
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-10 03:12:54 +05:30
Ahmed Gomaa 09d5322283 Merge remote-tracking branch 'upstream/main' into fix/pdf-import-actualtext 2026-11-09 21:59:07 +02:00
HassanKhan f8ca2c09cb Merge remote-tracking branch 'upstream/main' into feat-4936-auto-spell-check
# Conflicts:
#	docs/gaps.md
#	docs/roadmap.md
#	docs/target-app-parity.md
#	docs/type-parity.md
2026-11-09 23:50:29 +05:00
Ahmed Gomaa 9fda083329 Merge remote-tracking branch 'upstream/main' into fix/pdf-import-actualtext 2026-11-09 20:49:32 +02:00
HassanKhan ff1079b3ce Auto Spell Check: underline the unknown words of the type on the canvas (part of #4936) 2026-11-09 23:41:41 +05:00
Ahmed Gomaa 9b797c06d1 PDF export: letters with marks are written once in the text layer
A mark glyph's vertical translation started a new draw_glyphs batch, so
krilla received the cluster's source range again and mapped its
characters twice. Copying or searching the exported PDF then found
doubled letters for Arabic harakat in any font, and for every dotted
letter in fonts that draw dots as zero-advance mark glyphs (Noto Sans,
Naskh and Kufi Arabic).

Keep compatible glyphs on the same layout line in one batch and carry
their relative vertical placement as per-glyph y_offset; horizontal
placement is unchanged (next_x - x advances). Font, size, linear
transform, line/column, paint run, list marker and hyphen boundaries
still split batches. Krilla keeps owning cluster mappings and
ActualText. No importer change.

Regressions decode the content stream and ToUnicode maps: one batch per
layout line, no duplicated cluster assignment, one ActualText per
multi-glyph cluster, contours within 0.05 pt of outline export; mixed
scripts, vertical columns, path rotations and PDF/X variants covered.
The reader round-trip stays an ignored test until the importer consumes
ActualText (#6165).

Addresses #6309.
2026-11-09 18:13:14 +02:00
makesomethingshit 898db5d72d #6307: Keep spinner evidence separate from shared status lines 2026-11-10 00:53:11 +09:00
makesomethingshit 5bf0f337df #6307: Keep numeric spinner arrows repeating while held 2026-11-10 00:45:55 +09:00
Ahmed Gomaa 6e71211a16 PDF import: preserve authored text in ActualText spans
Editable PDF import derived characters from glyph Unicode/CID mappings
even when the enclosing marked-content sequence supplied /ActualText.
A span that paints "xy" but says "AB", followed by "C", imported "xyC".

Track the outermost replacement owner per span (absent, explicitly
empty, consumed), decode it with the existing PDF text-string decoder,
emit it once at the first placeable glyph, and let the remaining glyphs
of the span advance the pen without phantom character slots or
inferred spaces. Authored stretches keep their logical order while
adjacent ordinary text still goes through visual-to-logical
reconstruction. Glyph identity still drives font matching. Depth and
size are bounded; oversized or unbalanced spans fall back to glyph
mappings with a warning.

Outlines mode and PDF export are unchanged. Parity docs updated,
scores unchanged.

Fixes #6165.
2026-11-09 17:43:28 +02:00
Ahmed Gomaa 7020af6501 Merge remote-tracking branch 'upstream/main' into fix/macos-native-cursor-delivery 2026-11-09 15:59:17 +02:00
Ahmed Gomaa 5c64c074ca Merge remote-tracking branch 'upstream/main' into fix/macos-native-cursor-delivery 2026-11-09 15:02:19 +02:00
Ahmed Gomaa 7d4f8dce27 Merge remote-tracking branch 'upstream/main' into fix/arabic-mark-colour-ownership 2026-11-09 15:02:18 +02:00
Ahmed Gomaa 7fa506c3f8 Merge remote-tracking branch 'upstream/main' into fix/macos-native-cursor-delivery 2026-11-09 14:13:27 +02:00
Ahmed Gomaa e873ae6f87 Merge remote-tracking branch 'upstream/main' into codex/snapping-quick-access 2026-11-09 14:03:54 +02:00
Ahmed Gomaa 85a96463bc Merge remote-tracking branch 'upstream/main' into fix/arabic-mark-colour-ownership 2026-11-09 14:03:39 +02:00
Ahmed Gomaa aec326b6c6 macOS: deliver canvas cursors through AppKit pending a winit fix
On macOS the canvas paints tool cursor glyphs into the frame, so they
trail the pointer by a frame or more (#2292). This interim adapter
delivers the same glyphs as native NSCursors, which AppKit moves
independently of canvas redraws.

ui-egui prepares cached 1x/2x RGBA requests from the existing cursor
rasterizer and hotspots (transparent padding only) and keeps returning
a visible system fallback icon. The desktop host builds NSImage/NSCursor
objects with point-sized images and hotspots, owns cursor-rectangle
suspension and restoration, and hands the cursor back on menu tracking,
focus loss, empty passes, cursor overrides and shutdown.

Windows/X11, Wayland and web delivery are unchanged. No artwork, no
production unsafe, no new dependency package: only four AppKit features
are enabled on the already-shipped objc2-app-kit. Remove once the pinned
winit sizes macOS cursor images and hotspots in points.

Addresses #2292.
2026-11-09 13:44:32 +02:00
Ahmed Gomaa a3e626600c Merge remote-tracking branch 'upstream/main' into fix/arabic-mark-colour-ownership 2026-11-09 12:36:54 +02:00
Ahmed Gomaa aad040f012 Merge remote-tracking branch 'upstream/main' into codex/snapping-quick-access 2026-11-09 12:27:27 +02:00
HassanKhan 11779d6d46 Merge remote-tracking branch 'upstream/main' into feat-4936-custom-dictionary
# Conflicts:
#	docs/gaps.md
#	docs/roadmap.md
#	docs/target-app-parity.md
2026-11-09 15:04:56 +05:00
HassanKhan 5bef0ed79a Part of #4936: custom dictionary and Ignore All commands
text.spelling.addWord, removeWord and changeWord are Check Spelling's Add
and Edit Custom Dictionary's Add, Delete and Change; text.spelling.dictionary
lists the words. They live in craft-proof, which every language's check
reads. The desktop app and vectorcraft-cli keep them in
`Custom Dictionary.txt` next to the preferences (none without preferences);
elsewhere they last until the app closes.

text.spelling.ignoreAll is Ignore All: the active document's checks skip the
word while it is open; not saved, not undoable, and not a change to the
document's revision.

Behaviour: https://helpx.adobe.com/illustrator/desktop/design-with-text/edit-format-text/check-and-correct-spelling.html
2026-11-09 13:54:08 +05:00
Don Omondi f71c6aaf5b EPS import: CIDFonts only named, over a Unicode CMap, set their characters as live type
A CMap name of the public Unicode CMap form (UniJIS-UCS2-H, UniGB-UTF16-H
and similar) is understood without being defined in the file, so type in a
CIDFont the file only names decodes to its Unicode characters and is set as
live type.
2026-11-09 03:48:35 -05:00
HassanKhan 125ebe1c73 Merge remote-tracking branch 'upstream/main' into feat-4936-spell-check
# Conflicts:
#	docs/gaps.md
#	docs/roadmap.md
#	docs/target-app-parity.md
2026-11-09 12:03:20 +05:00
HassanKhan f3bad1682c Merge remote-tracking branch 'upstream/main' into feat-4936-spell-check
Language per character rows in docs/type-parity.md: spelling is no longer listed as not yet done, and the hyphenation note names the languages that still lack it.
2026-11-09 11:42:44 +05:00
ruchirguitarandCursor e342a1ce0c M2.1: merge main and keep path-deletion evidence (#3380)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-09 11:43:22 +05:30
ruchirguitarandCursor 7690e2e0ad M2.1: merge main again and keep path-deletion evidence (#3380)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-09 11:25:37 +05:30
ruchirguitar b2b9348ebd Merge remote-tracking branch 'origin/main' into SidePanelCollapseArrow
Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	docs/roadmap.md
#	docs/target-app-parity.md
2026-11-09 10:55:13 +05:30
HassanKhan 82181ff0b1 Merge remote-tracking branch 'upstream/main' into feat-4936-spell-check
# Conflicts:
#	crates/engine/src/cmd.rs
#	docs/gaps.md
#	docs/roadmap.md
#	docs/target-app-parity.md
#	docs/type-parity.md
2026-11-09 10:25:12 +05:00
ruchirguitar e0aade5229 Merge remote-tracking branch 'origin/main' into SidePanelCollapseArrow
Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	docs/gaps.md
#	docs/roadmap.md
#	docs/target-app-parity.md
#	docs/ui-parity.md
2026-11-09 10:00:54 +05:30
M Balazs PC b64cfed610 Merge remote-tracking branch 'origin/main' into fix/ai-right-aligned-tabs
# Conflicts:
#	crates/text/src/layout/flow.rs
#	docs/file-format-parity.md
#	docs/roadmap.md
#	docs/target-app-parity.md
2026-11-09 04:48:48 +01:00
ruchirguitarandCursor 3deac491ca M2.1: merge current main and keep path-deletion evidence (#3380)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-09 09:03:17 +05:30