github storytold/vectorcraft v0.24.0
VectorCraft v0.24.0

one hour ago

What's Changed

  • Part of #4936: follow-ups to #6296 (read the dictionary file whole; keep other windows' words when a save fails) by @Hassan1305 in #6303
  • Control bar: add glyph and alignment guide toggles to Snapping by @thisisgomaa in #6166
  • Type: colouring Arabic marks preserves joining and glyph ownership by @thisisgomaa in #6158
  • macOS: deliver canvas cursors through AppKit pending a winit fix by @thisisgomaa in #6306
  • PDF export: dithered and Perceptual CMYK gradients stay CMYK by @dotCooCoo in #6317
  • PDF import: image masks open colorized by the color they are painted in (#6313) by @jmverges in #6321
  • G5: dynamic symbol parts take opacity, blend and non-solid paint by @Messhias in #6308
  • Fix #6320: EPS import warns about fonts that aren't available by @JonRC in #6326
  • Strip leading byte-order mark in graph CSV parser by @Silvertree2010 in #6325
  • G5: built-in UI Frames symbol library with default 9-slice by @Messhias in #6329
  • EPS import names the missing fonts of the document's type (#6326 follow-up) by @JonRC in #6334
  • PDF export: letters with marks are written once in the text layer by @thisisgomaa in #6330
  • Part of #4936: Auto Spell Check underlines the unknown words of the type by @Hassan1305 in #6341
  • PDF import: Separation images keep their ink (#6314) by @jmverges in #6347
  • 3D effect dialogs say why a selection is refused and turn OK off (#6140) by @slafebre in #6346
  • PDF import: preserve authored text in ActualText spans by @thisisgomaa in #6327
  • Canvas: Cmd/Ctrl-wheel input finer than a whole notch zooms; only whole notches scroll sideways by @dotCooCoo in #6360
  • G2: Effect Gallery thumbnails and an in-dialog preview by @ruchirguitar in #6359
  • Fix #6125: raster exports keep a Screen glow on the bare page by @dotCooCoo in #6355
  • Canvas: a 3D effect changed on type or a group redraws where its solid was by @addibble in #6290
  • Commands: the View commands check their params against machine-readable schemas by @dotCooCoo in #6364
  • Part of #5632: Convert to Grayscale stores an image with one gray channel by @dotCooCoo in #6366
  • Path ops: Unite sweeps a single path once when its own sweep leaves its segments as they are by @dotCooCoo in #6357
  • Fix #6316: a Transform effect's copies of a group are whole groups below the original by @dotCooCoo in #6363
  • Measure: both ends land on glyph guides with Snap to Glyph on by @dotCooCoo in #6368
  • Canvas: a touchpad's End or Cancel ends its wheel turn with Zoom with Mouse Wheel on by @dotCooCoo in #6372
  • Render: the glow pan test checks fractional pans, and background docs say straight alpha by @dotCooCoo in #6370
  • Font menu: a panel scrolled past a closed font field keeps scrolling by @dotCooCoo in #6375
  • .ai import: images in a spot ink's Separation space keep their ink (#6350) by @jmverges in #6379
  • Transform: butt-capped lines measure to their end points with Use Preview Bounds by @dotCooCoo in #6380
  • MCP: docs list every JSON Schema keyword in a command's schema by @dotCooCoo in #6381
  • Part of #6361: Cut takes direct-selected anchors out of the path by @dotCooCoo in #6371
  • Revolve: type, groups and layers revolve, and the profile and face limits are higher by @dotCooCoo in #6365
  • Font menu: a font field covered by an overlay needs the pointer moved again by @dotCooCoo in #6384
  • Part of #4936: right-click an underlined word for its suggestions, Ignore All and Add to Dictionary by @Hassan1305 in #6385
  • PDF import: DeviceN images of one ink or of process plates keep their inks (#6348) by @jmverges in #6386
  • Guides: Lock Guides by Default in Preferences locks guides when the app starts by @dotCooCoo in #6367
  • New Document: More Settings is a pop-up, and Save Preset a mode of Preset Details by @dotCooCoo in #6377
  • #6307: Keep numeric spinner arrows repeating while held by @makesomethingshit in #6328
  • Revolve: a hidden Revolve's profile is measured before the effects after it by @dotCooCoo in #6390
  • Transform: a butt-capped curve with a handle on its end point stops at that end by @dotCooCoo in #6389
  • MCP: command listings give each command with a schema an inputSchema by @dotCooCoo in #6392
  • 3D: a profile's empty contours count toward its point limit by @dotCooCoo in #6391
  • Number fields: a panel scrolled past a number field keeps scrolling by @dotCooCoo in #6387
  • Revolve: a group's faces keep one back-to-front order when a member is transparent by @dotCooCoo in #6395
  • Export: exported objects keep the clips, masks and effects around them by @dotCooCoo in #6396
  • Commands: engine.apiReference returns the command API reference in Markdown by @dotCooCoo in #6399
  • Revolve: a member whose fill or stroke is at 0% opacity stays invisible in a revolved group by @dotCooCoo in #6400
  • Part of #4936: follow-ups to #6385 (only the topmost type's word; dictionary tests one at a time) by @Hassan1305 in #6398
  • Type: an optional setting measures point type by its glyph outlines by @dotCooCoo in #6402
  • SVG export: mask and filter regions cover the art they apply to by @dotCooCoo in #6401
  • View: one Escape resets a rotated view when it has nothing else to end by @dotCooCoo in #6405
  • View: Outline draws on a white canvas, with artboards as their edges by @dotCooCoo in #6408
  • Dimension tool: a click on an anchor of any path takes that anchor by @dotCooCoo in #6409
  • Scripts: File › Scripts › Other Script… runs JavaScript files by @dotCooCoo in #6411
  • #4936: Spelling › Auto Spell Check in the context menu of type by @Hassan1305 in #6407
  • .ai import: the live envelope and warped type check sees white art (#6412) by @jmverges in #6413
  • G5: built-in Map Markers symbol library by @Messhias in #6416
  • .ai import: a note for type in an envelope (part of #3179) by @jmverges in #6383
  • Fix #5713: resizable icon flyouts and bottom-aligned panel footers by @ruchirguitar in #5973
  • Fall back to a plain flush when F_FULLFSYNC fails with ENOTTY by @AhmedKhan-GH in #6397
  • PDF import: Arabic ligatures keep their letters in order (#6072) by @z3r0pix3l in #6243
  • Tests: preserve duplicate glyph order in kashida ownership checks by @christianlappin in #6339
  • M4: fix PDF gradient placement in transparency groups by @annoybot in #6242
  • MCP: handle Rotate View gestures in the desktop canvas by @christianlappin in #6342
  • Stroke: Line Arrow arrowhead (part of #5421) by @juliusvaart in #6349
  • Tests: synchronize the thumbnail queue priority assertion by @christianlappin in #6352
  • Regression tests for #3566 (SVG entities in element content) and #3084 / #2096 (Export for Screens JPGs) by @ruchirguitar in #6431
  • Direct Selection shows and drags type on a path's direction handles (#3565) by @ruchirguitar in #6432
  • G5: built-in Game HUD graphic style library by @Messhias in #6424
  • Keep selection outlines off the Vector Halftone preview (#6369) by @makesomethingshit in #6403
  • Docs: move stray notes at the top of ROADMAP.md into Revision history by @ruchirguitar in #6443
  • Docs: tidy misplaced and duplicated notes at the top of docs/gaps.md by @ruchirguitar in #6444
  • .ai import: envelopes of type open live where they draw as their drawn art (#3179) by @jmverges in #6421
  • Step a blank Stroke Weight from 0.25 pt (#5349) by @MarekSpodBiedry in #5559
  • Crop Image: cut plain raster images from their pixels instead of re-rendering (#5534) by @MarekSpodBiedry in #5560
  • #4936: Edit › Edit Custom Dictionary… dialog by @Hassan1305 in #6425
  • Scripts: a framed run keeps the file-access roots it started under by @dotCooCoo in #6449
  • 3D: Extrude & Bevel and Inflate build detailed shapes they refused as too complex by @dotCooCoo in #6450
  • Docs: with glyph bounds, the font size follows the vertical scale by @dotCooCoo in #6452
  • Fix #6419: Edit › Assign Profile… and Color Settings… scroll to the Color Settings by @slafebre in #6446
  • G5: built-in Game Trails brush library by @Messhias in #6353
  • #6429: a value typed in a Stroke popup sticks when a click outside closes it by @slafebre in #6451
  • JavaScript: identifiers follow Unicode's ID_Start and ID_Continue properties by @dotCooCoo in #6454
  • G9: .ai save names a variable font instance's design space (#6388) by @ruchirguitar in #6453
  • Fix #2752: a gradient mesh keeps the outline of the path it is made from by @dotCooCoo in #6458
  • Edit: Copy and Cut of a whole compound member take only that member by @dotCooCoo in #6461
  • Undo: the history keeps steps within a quarter of installed memory on every desktop OS
    by @dotCooCoo in #5035
  • Tests: test262 skips a test only when its code uses a missing built-in by @dotCooCoo in #6463
  • Plug-ins: an API level 2 plug-in calls the commands its manifest lists by @dotCooCoo in #6462
  • Fix #6382: PDF export says how a page longer than 200 inches is written by @dotCooCoo in #6464
  • Fix #6335: Color Settings are remembered across restarts by @slafebre in #6457
  • Expand: object.expand rejects a param of the wrong type by @dotCooCoo in #6466
  • 3D: effects build from clipping groups, blends and symbol instances by @dotCooCoo in #6418
  • Path commands: Offset Path, Simplify, Split Into Grid, Clean Up, Trap and Contour reject a param of the wrong type by @dotCooCoo in #6467
  • Edit: a copied compound member takes the compound's graphic style link by @dotCooCoo in #6468
  • Plug-ins: no command call is made after a run's failed call by @dotCooCoo in #6471
  • Transparency: opacity mask commands reject a param of the wrong type by @dotCooCoo in #6473
  • 3D: a symbol's 9-slice guides and overrides count before its art is placed by @dotCooCoo in #6474
  • 3D: expanded solids keep the art's curves in caps and the walls' cap edges by @dotCooCoo in #6469
  • MCP: answer_dialog sets the fields and answers the dialog in one request by @dotCooCoo in #6476
  • Scissors: a cut leaves one of the two new end points selected by @dotCooCoo in #6479
  • Repeat, Pattern: the Repeat and pattern commands reject a param of the wrong type by @dotCooCoo in #6481
  • Type: vertical-only settings keep horizontal ligatures whole by @dotCooCoo in #6480
  • sonar: MD5 in PDF encryption is the format's, not a choice by @dylanmtaylor in #6483
  • Preferences: Reset Preferences leaves the open document's units alone by @dotCooCoo in #6482
  • Actions: test Batch folder names that differ only in case or are empty by @dotCooCoo in #6484
  • Docs: spot gradients with RGB or Lab stops keep the ink in a CMYK document by @dotCooCoo in #6485
  • Symbols: separations, proofing and color conversion reach a dynamic instance's own colors by @dotCooCoo in #6487
  • Type: character formats, Ruby and Move Type Path Handle reject a param of the wrong type by @dotCooCoo in #6477
  • 3D: an opacity mask on a group member masks its solids by @dotCooCoo in #6478
  • Perspective grid: Snap to Grid reads a flat first object at the depth it attaches to by @dotCooCoo in #6489
  • Preferences: Reset Preferences asks first by @dotCooCoo in #6491
  • Perspective grid: docs say when Snap to Grid moves an edge onto a gridline by @dotCooCoo in #6486
  • Reshape: a drag stretches an open path from the dragged point to its two ends by @dotCooCoo in #6492
  • Dimension tool: linear dimensions measure horizontally, vertically or aligned by @dotCooCoo in #6494
  • Canvas: installing or removing a plug-in draws its effects again by @dotCooCoo in #6495
  • Guides: an option makes Cmd/Ctrl ruler drags artboard guides by @dotCooCoo in #6496
  • Smart Guides: tools do not snap to Smart Guides while Pixel Preview is on by @dotCooCoo in #6498
  • Preferences: export and import preferences as a JSON file by @dotCooCoo in #6501
  • .ai import: stroked type keeps its cap, join and miter limit by @jmverges in #6500
  • Docs: pattern.options keeps a pattern's current values for omitted params by @dotCooCoo in #6493
  • Menus: a long menu stays in one place instead of jumping between two places by @dotCooCoo in #6503
  • Scripts: Window › Script Console shows script output, errors and run reports by @dotCooCoo in #6499
  • .ai import: warps of type open as mesh envelopes on their saved grid by @jmverges in #6508
  • Artboards: an artboard's guide label colors its own guides by @dotCooCoo in #6511
  • Native files: open reads the PDF preference in the same pass as the document by @dotCooCoo in #6512
  • Keep blank value row in single-column graph CSV round trip by @Silvertree2010 in #6266
  • Symbols: Break Link keeps a hidden or locked instance's art hidden or locked by @dotCooCoo in #6513
  • Menus: a scrolling list keeps each label on one line by @dotCooCoo in #6516
  • Character Styles: the style dialogs' fields have accessible names by @dotCooCoo in #6518
  • #5820: files that record no units open in Preferences › Units › General by @ruchirguitar in #6514
  • Reshape: a click sets a focal point and a drag moves every focal point by @dotCooCoo in #6519
  • Symbols: Break Link selects no art inside a hidden or locked group by @dotCooCoo in #6520
  • Render: type in a document's own composite font draws in its definition by @dotCooCoo in #6523
  • Render: node renders and thumbnails follow the supersample and precise options by @dotCooCoo in #6522
  • Scripts: File › Scripts lists the Scripts folder, subfolders as submenus by @dotCooCoo in #6525
  • Native files: a document past a read budget is refused after one read by @dotCooCoo in #6524
  • Dimension tool: both ends of a dimension follow the art it measures by @dotCooCoo in #6527
  • Docs: the roadmap lists each milestone once by @dotCooCoo in #6531
  • Stores: saving a preset, profile or plug-in reads at most one byte past it from the file it replaces by @dotCooCoo in #6529
  • Type: on a vertical path, letters lie a quarter turn clockwise from upright glyphs, in a column centered on the path by @dotCooCoo in #6530
  • Character Styles: the Fill and Stroke Tint fields have distinct names by @dotCooCoo in #6533
  • Scripts: #include and the other preprocessor lines run, and $.evalFile runs a file by @dotCooCoo in #6536
  • .ai import: stroked type in an envelope maps from its glyphs grown by half its stroke by @jmverges in #6535
  • Paths: Add Anchor Point keeps the same anchors and segments selected by @dotCooCoo in #6528
  • Reshape: a step recorded without focal points plays by the earlier rule by @dotCooCoo in #6534
  • Symbols: an instance that only moves holds the art its 9-slice guides move by @dotCooCoo in #6538
  • Symbols: Break Link keeps new art on a locked artboard selected by @dotCooCoo in #6539
  • Expand Appearance: tinted symbols keep their colors under a color adjustment by @dotCooCoo in #6537
  • PDF export: PDF/X-1a, X-3 and 1.3 keep the art under the hidden part of cropped art by @dotCooCoo in #6540
  • Render: a placed document drawn exactly lends its own composite fonts by @dotCooCoo in #6542
  • Character Styles: a tint error names the Fill Tint or Stroke Tint field by @dotCooCoo in #6544
  • Appearance: aligned Remove Item and Duplicate Item keep the active row by @dotCooCoo in #6547
  • Reshape: an empty focal list cannot be combined with radius by @dotCooCoo in #6550
  • Type: tracking and manual kerning take the Horizontal Scale by @jmverges in #6546
  • G5: built-in Inventory Icons symbol library by @Messhias in #6442
  • Contextual Task Bar: screen readers name the text buttons by @dotCooCoo in #6553
  • Scripts: a script chosen from File › Scripts reads its #include files and runs $.evalFile by @dotCooCoo in #6549
  • Glyphs: text.setGlyphAlternate with gid null reports the glyph drawn by @dotCooCoo in #6554
  • Docs: the Dynamic symbols entry says Edit Symbol keeps instances linked by @dotCooCoo in #6552
  • Scripts: alert, confirm and prompt open dialogs with Stop, and headless runs take their answers from script.run by @dotCooCoo in #6557
  • SVG import: a clip path made of text clips by the text by @dotCooCoo in #6556
  • Dimension tool: a dimension selected with its art stays live through Expand and Outline Stroke by @dotCooCoo in #6559
  • G5: built-in Status Effects graphic style library by @Messhias in #6459
  • Docs: the Control bar's Paragraph alignment buttons are pinned at 1536 pt by @dotCooCoo in #6558
  • Graphs: labels keep their paragraph settings and anti-aliasing when the graph is drawn again by @dotCooCoo in #6561
  • Effects: pasted art keeps an SVG filter whose name the document gives another filter by @dotCooCoo in #6560
  • Glyphs: gid null inside a ligature reports the ligature by @dotCooCoo in #6565
  • Docs: gaps.md no longer says .ai editing data is not written by @dotCooCoo in #6566
  • Docs: a series mark's row without paint leaves the stored paint, not its opacity by @dotCooCoo in #6564
  • Flatten Transparency: a long rasterized area is placed whole by @dotCooCoo in #6567
  • Plug-ins: live effects of a document's first view share a 2,000 ms budget by @dotCooCoo in #6555
  • Fix #5239: double-clicking a ruler adds a guide there by @Taha-Mahmoodi in #5457
  • Rasterize: art longer than 32,768 pixels at the resolution is refused, not cut off by @dotCooCoo in #6573
  • Tests: the command sweep sends file and folder params only into its temp folder by @dotCooCoo in #6572
  • Type: an opened file flows its threads in its own composite fonts by @dotCooCoo in #6575
  • Scripts: #strict on runs the script with strict write checks instead of refusing it by @dotCooCoo in #6569
  • Graphs: centered labels with an empty middle line stay centered by @dotCooCoo in #6574
  • Effects: a pasted SVG filter at the size limit still draws under its new name by @dotCooCoo in #6576
  • Print: Print as Bitmap prints all of a page longer than 32,768 pixels by @dotCooCoo in #6578
  • .ai save: stroked type keeps its cap, join and miter limit by @jmverges in #6581
  • Plug-ins: the web build times the first-view budget and each run's limit by @dotCooCoo in #6584
  • Legacy .ai export: a long transparent image is flattened whole by @dotCooCoo in #6579
  • Pen: one Escape after deselecting the path being drawn ends something else by @dotCooCoo in #6586
  • MCP: ui.menu.list leaves out recent files outside the read roots by @dotCooCoo in #6580
  • Blob Brush: a round tip's preview is the outline of the area, round at both ends (#4343) by @SofiaAFigueredo in #6587
  • Scripts: an error $.evalFile could not run, caught and thrown again, is reported where it was thrown again by @dotCooCoo in #6577
  • Type: text.setStyle refuses a leading with trailing text by @dotCooCoo in #6590
  • Rasterize: art that rounds to 32,768 pixels a side is no longer refused by @dotCooCoo in #6588
  • #6502: .ai layer colour index follows the file's numbering by @ruchirguitar in #6589
  • Plug-ins: the web build's heavy filter runs stop at the 300 s limit too by @dotCooCoo in #6591
  • Effects: a pasted SVG filter is not renamed to a name the document's effects use by @dotCooCoo in #6592
  • Script Console: report lines match script.console, counts of one are singular, every run ends by @dotCooCoo in #6562
  • Effects: bound 3D paint copies, dash restarts and trap candidate pairs by @dylanmtaylor in #5493
  • Fix #4312: a Shift move lands the selection's edges and centre on ruler guides by @SofiaAFigueredo in #4338
  • Document tabs: a middle-click closes the tab, as the × does (#6506) by @Hassan1305 in #6568
  • Tests: a recent file outside the read root is not listed even as a disabled row by @dotCooCoo in #6594
  • Scripts: $ has the Dollar object's other members, with localize and toSource by @dotCooCoo in #6563
  • Outline view: a click on a path's outline selects it through an image or a gradient mesh in front (#6437) by @Hassan1305 in #6585
  • Effects: a pasted SVG filter avoids brush effect names and is refused with no free name by @dotCooCoo in #6598
  • .ai import: an envelope in Edit Contents opens on its drawn art when its mesh lies away by a move by @jmverges in #6571
  • 3D effects: Extrude & Bevel, Inflate and Rotate on a group keep each member's blending mode by @dotCooCoo in #6602
  • Effects: a pasted SVG filter takes a free capital letter or punctuation character when no lowercase name is free by @dotCooCoo in #6607
  • Gradients: picking a part of a symbol instance leaves no gradient stop selected by @dotCooCoo in #6605
  • MCP: ui.inspect leaves out paths outside the read roots by @dotCooCoo in #6608
  • Plug-ins: setting the plug-ins folder again after clearing it installs its plug-ins by @dotCooCoo in #6611
  • MCP: list UI_COMMANDS in command_list and close catalogue gaps (#6460) by @Messhias in #6551
  • JavaScript: run E4X XML literals and the XML, XMLList, Namespace and QName objects behind an option by @dotCooCoo in #6612
  • Updates: take craft-update from craft-libs main at 6e03f65bf by @dotCooCoo in #6616
  • Simplify: a closed subpath whose refit is one curve stays in the path by @dotCooCoo in #6614
  • Links: groups of one file share one decoded image per operation by @dylanmtaylor in #6620
  • Type: aligned lines leave the tracking after their last character out by @jmverges in #6619
  • ci: run Harden-Runner on every job by @dylanmtaylor in #6629
  • Swatches: default names read a -0 component as 0 by @dotCooCoo in #6623
  • G5: built-in Skill Icons symbol library by @Messhias in #6624
  • Updates: take craft-update from craft-libs main at 6e03f65bf by @dylanmtaylor in #6633
  • Release: VectorCraft v0.24.0 by @FredApps in #6599

New Contributors

Full Changelog: v0.23.0...v0.24.0

Don't miss a new vectorcraft release

NewReleases is sending notifications on new releases.