100 Commits
Author SHA1 Message Date
BFlat c8c005b7f3 Merge pull request #3932 from storytold/feat/852-macos-pen-pressure
macOS: a tablet pen's pressure reaches the tools (#852)
2026-10-24 09:42:34 +07:00
BFlat 8808019ce2 Merge pull request #3935 from storytold/fix/main-clippy-bitmap
Main's CI: an unnecessary map_or, testkit's Unix-only mut, and a shared temp-dir probe
2026-10-24 09:42:18 +07:00
bflatastic 8dbca35893 macOS pen pressure: a feed written on the UI thread never waits for a touch 2026-10-24 09:26:27 +07:00
bflatastic b1e36d69f3 macOS: a tablet pen's pressure reaches the tools (#852)
An AppKit local event monitor (apps/vectorcraft/src/mac_tablet.rs) reads each mouse and tablet event's pressure and the pen's end before winit's view handles it and writes them into the canvas's StylusFeed. The feed keeps the pressure of each pointer move, and the canvas pairs them with the frame's moves, so a fast stroke keeps its curve and each point its own pressure; mouse event coalescing is off. The eraser end selects the Eraser tool, as on Linux. Ported from PhotoCraft's crates/tablet (pressure and eraser end only).
2026-10-24 09:26:27 +07:00
bflatastic e219543e58 Main's CI: an unnecessary map_or, testkit's Unix-only mut, and a temp-dir probe that tests running alongside removed 2026-10-24 09:26:06 +07:00
BFlat 90c1f8d196 Merge pull request #3927 from storytold/fix/1479-ai-large-images
.ai import: an image too large for the editing data's reader opens the file as its PDF part, not with a blank layer (#1479)
2026-10-24 08:55:42 +07:00
bflatastic 76c9aa579d .ai import: an image too large for the editing data's reader opens the file as its PDF part, not with a blank layer (#1479) 2026-10-24 08:39:00 +07:00
BFlat 5037a1ac4b Merge pull request #3923 from storytold/land/3922
G11: Shape Builder pieces: contract the sweep's stubs between two cuts of one path
2026-10-24 08:18:12 +07:00
BFlat f2d793f746 Merge pull request #3921 from Taha-Mahmoodi/fix/font-family-load-race
Fix #3920: a family another thread is loading is found whole, so fallback text never takes the style of its first file
2026-10-24 07:56:41 +07:00
BFlat 533cbc6b94 Merge pull request #3919 from Taha-Mahmoodi/fix/3586-pdf-stream-scan-linear
Fix #3586: the PDF pre-open scan reads a file dense with stream keywords in linear time
2026-10-24 07:35:21 +07:00
BFlat cdd3b949ba Merge pull request #3918 from lehni/fix/svg-glyph-image-href
Type: an SVG glyph's image is an SVG image by its plain href first
2026-10-24 07:23:53 +07:00
BFlat 180e6dc08c Merge pull request #3917 from Taha-Mahmoodi/fix/3828-japanese-business-card
Fix #3828: New Document › Branding offers Business Card 91 × 55 mm
2026-10-24 07:23:37 +07:00
BFlat 768f6ba523 Merge pull request #3916 from lehni/fix/svg-glyph-svg-images
Type: SVG glyphs leave out images of SVG documents
2026-10-24 07:02:17 +07:00
BFlat 3aa9855010 Merge pull request #3914 from storytold/fix/flaky-nativemenu-test
Tests: native-menu tests count menu reads only in runs no other test disturbed
2026-10-24 06:39:52 +07:00
bflatastic 3fd190f747 Tests: native-menu tests count menu reads only in runs no other test disturbed 2026-10-24 06:26:02 +07:00
BFlat 0df73f7c36 Merge pull request #3907 from el-j/fix/direct-selection-fill-occlusion
M2.1: prevent click-through on open path fills and support segment toggle (#3405)
2026-10-24 06:23:32 +07:00
BFlat 09ad7e4e59 Merge pull request #3908 from lehni/fix/svg-glyph-images
Type: images in SVG glyph documents draw with the glyph
2026-10-24 06:23:18 +07:00
BFlat 07eb827be9 Merge pull request #3904 from Silvertree2010/fix/h1831-page-range-parser-accepts-a-lead
Reject a leading plus sign in page range numbers
2026-10-24 06:23:02 +07:00
BFlat 1e26801e4e Merge pull request #3905 from storytold/feat/3849-pdf-tiling-patterns
PDF export: pattern fills are written as tiling patterns (#3849)
2026-10-24 06:22:45 +07:00
BFlat d21e734d88 Merge pull request #3906 from storytold/fix/flaky-font-tests
Tests: engine tests that add fonts to the shared font database take one lock
2026-10-24 06:22:29 +07:00
BFlat 5fc9550e96 Merge pull request #3902 from storytold/fix/3850-emf-warnings
EMF and WMF export: say when type is written as outlines and pattern fills as their tiles (#3850)
2026-10-24 06:22:15 +07:00
bflatastic 3225315ce1 PDF export: warn about tiles only for a pattern swatch that exists 2026-10-24 05:59:04 +07:00
bflatastic a564fe5d8e PDF export: pattern fills are written as tiling patterns (#3849) 2026-10-24 05:59:04 +07:00
bflatastic b2835c4f2b Tests: engine tests that add fonts to the shared font database take one lock 2026-10-24 05:52:15 +07:00
bflatastic 23d8820898 EMF and WMF export: say when type is written as outlines and pattern fills as their tiles (#3850) 2026-10-24 05:35:12 +07:00
BFlat ece7f6b938 Merge pull request #3899 from storytold/fix/3870-outline-sliver
Pathfinder Outline: junctions a hair apart are one cut, so no sliver path is left (#3870)
2026-10-24 05:30:53 +07:00
bflatastic 5b1528c9b6 Pathfinder Outline: junctions a hair apart are one cut, so no sliver path is left (#3870) 2026-10-24 05:17:06 +07:00
BFlat af6b0b8691 Merge pull request #3897 from storytold/fix/audit-automation-roots
Fix clipboard read-policy bypass and FULL lock held during checks (audit automation roots)
2026-10-24 05:16:36 +07:00
bflatastic 4eec70e5cd Automation roots: rustfmt and clippy (redundant closure) 2026-10-24 05:16:21 +07:00
BFlat 8743f63f50 Merge pull request #3898 from storytold/land/3895
G12: ruler guides nudged with art keep to the page's axes at a turned Constrain Angle
2026-10-24 05:01:07 +07:00
BFlat e0c1548049 Merge pull request #3896 from storytold/fix/3869-svg-type-features
SVG export: type with small capitals, superscript, subscript or tab leaders is written as outlines (#3869)
2026-10-24 04:51:54 +07:00
BFlat 8d87932f48 Merge pull request #3891 from aiongg/eps-read-soon-headroom
EPS tests: budget tests wait 120 s for the program to stop
2026-10-24 04:51:38 +07:00
BFlat f02eedd50d Merge pull request #3892 from mercuryVM/fix/3724-new-window-disabled
Fix #3724: Window › New Window is greyed out until it opens a window
2026-10-24 04:51:26 +07:00
BFlat ec2d43a4d5 Merge pull request #3894 from lehni/refactor/colour-key
Renderer: colour caches key colours with Color::key
2026-10-24 04:51:10 +07:00
BFlat 32d81bb04e Merge pull request #3884 from dylanmtaylor/fix/audit-pdf-limits
Security: PDF import, print and export bounds; PDF 1.3 encryption notes
2026-10-24 04:50:54 +07:00
BFlat 83ccffcc9e Merge pull request #3890 from dylanmtaylor/fix/audit-engine-mcp-limits
Security: export names, linked-file ids, MCP prompt arguments and image encoders
2026-10-24 04:50:38 +07:00
BFlat 2084f1a6f9 Merge pull request #3889 from dylanmtaylor/fix/audit-effects-color
Security: Scribble rows, Outer Glow dilation and CSS export names
2026-10-24 04:50:23 +07:00
BFlat 5abf14a1c3 Merge pull request #3886 from dylanmtaylor/fix/audit-cad-limits
Security: DXF export bounds (layer and style names, flattening, entity count, image size) and import dash patterns
2026-10-24 04:50:07 +07:00
BFlat cc44799d08 Merge pull request #3885 from mercuryVM/fix/3716-click-near-anchor-moves
Fix #3716: a click near an anchor selects without moving the object
2026-10-24 04:49:51 +07:00
BFlat c6acc2511d Merge pull request #3879 from lehni/feature/art-owns-pixels
Type: emoji go with type that effects reshape and Expand Appearance
2026-10-24 04:49:33 +07:00
bflatastic 166afce360 SVG export: type with small capitals, superscript, subscript or tab leaders is written as outlines (#3869) 2026-10-24 04:49:08 +07:00
bflatastic 9c8afb09ba Image encoders: rustfmt 2026-10-24 04:49:07 +07:00
bflatastic 028cafa52e Scribble: the row loop's stop compares with partial_cmp (also stops on NaN; clippy) 2026-10-24 04:49:07 +07:00
bflatastic a82bcfe7a5 DXF export: format the far-coordinate check 2026-10-24 04:49:07 +07:00
bflatastic 2e71ab5476 PDF import and export: rustfmt 2026-10-24 04:49:07 +07:00
bflatastic 62333a2128 DXF export: the far-coordinate check compares with partial_cmp (also refuses NaN; clippy) 2026-10-24 04:49:07 +07:00
bflatastic 711b10ca59 Security: DXF export bounds (layer and style names, flattening, entity count, image size) and import dash patterns
Squashed from #3886 onto main.
2026-10-24 04:49:07 +07:00
bflatastic c2ad9f8bbb Type: emoji go with type that effects reshape and Expand Appearance
Squashed from #3879 onto main.
2026-10-24 04:49:06 +07:00
BFlat 94e1fa3ecc Merge pull request #3882 from dylanmtaylor/fix/audit-geom-pathops
Security: geometry, path edit and tool work bounds
2026-10-24 04:48:28 +07:00
bflatastic 0ecef703ef Security: cap the perspective grid's line-loop bounds at 121 a way 2026-10-24 04:34:18 +07:00
BFlat b0f7c5a65a Merge pull request #3877 from dylanmtaylor/fix/audit-svg-limits
Security: SVG import and export bounds (entity expansion, filter stacks, id probing, font feature tags)
2026-10-24 04:12:17 +07:00
BFlat e749cde3f5 Merge pull request #3876 from storytold/fix/3867-preserve-editing-svg
SVG: a Preserve Editing SVG reopened from disk saves as the full document again (#3867)
2026-10-24 04:12:02 +07:00
BFlat 6acc5ffb28 Merge pull request #3873 from lehni/chore/colour-glyph-tests
Type: tests pin colour glyphs in variable fonts, on paths and on the canvas
2026-10-24 04:11:47 +07:00
BFlat 993a277563 Merge pull request #3875 from storytold/fix/3868-screens-one-artboard
Export for Screens: a document row for an artboard keeps only that artboard's art (#3868)
2026-10-24 04:11:32 +07:00
BFlat 2ddf692805 Merge pull request #3513 from Zaxaerith/fix/3497-dash-pattern-preservation
fix(stroke): preserve extended dash patterns when editing (#3497)
2026-10-24 04:11:17 +07:00
BFlat a18a4c94a3 Merge pull request #3811 from ham9zah/fix/ai-gradient-mesh-one-grid
Import: an Illustrator gradient mesh comes in as one connected mesh
2026-10-24 04:11:02 +07:00
BFlat 6abe5ab8cd Merge pull request #3863 from marcoarnulfo/feat/action-sets
Actions: Create New Set and Set Options… name action sets, and a recording goes into the current set (#3712)
2026-10-24 04:10:45 +07:00
BFlat 586d6b4e87 Merge pull request #3866 from lehni/fix/colour-glyph-cache-key
Type: colour glyphs keep each fill's own colour, also between colours that look alike
2026-10-24 04:10:30 +07:00
BFlat c6a7962388 Merge pull request #3861 from FractalEncrypt/fix/ruby-font-fallback-stability
Fix false font fallback misses during concurrent loading
2026-10-24 04:10:14 +07:00
BFlat 583117a408 Merge pull request #3860 from Silvertree2010/fix/h1829-xml-id-unescape-accepts-a-sign-i
Reject signed hex digits in XML-ID _xHH_ escapes
2026-10-24 04:10:00 +07:00
bflatastic 9827bfbcbb SVG import: the shared appearance needs no conversion (clippy) 2026-10-24 03:52:24 +07:00
bflatastic 8e8aaa8683 SVG: a Preserve Editing SVG reopened from disk saves as the full document again (#3867) 2026-10-24 03:52:24 +07:00
bflatastic d9e524df30 SVG entity scan: look for a reference's ';' no further than the longest name 2026-10-24 03:52:24 +07:00
bflatastic 9f1a001a2b Export for Screens: a per-artboard EPS takes the artboard as its page, so an empty artboard still writes 2026-10-24 03:52:22 +07:00
bflatastic d81145aee3 Artboard documents keep objects without measurable bounds (type in a missing font) 2026-10-24 03:52:22 +07:00
bflatastic 60107cd33a Export for Screens: a document row for an artboard keeps only that artboard's art (#3868) 2026-10-24 03:52:22 +07:00
BFlat 902abf0242 Merge pull request #3874 from storytold/docs/gaps-dedupe
Docs: one ranked-table row each for G2 and G13 in gaps.md
2026-10-24 03:32:28 +07:00
bflatastic 255ce30103 Docs: one ranked-table row each for G2 and G13 in gaps.md 2026-10-24 03:31:54 +07:00
BFlat f6c716839e Merge pull request #3781 from Taha-Mahmoodi/feat/start-global-edit
Select: Start Global Edit edits the objects of the same shape together, each in proportion
2026-10-24 03:13:36 +07:00
BFlat a16489256b Merge pull request #3780 from dotCooCoo/feat/paragraph-bullets
Type: the Paragraph panel's Bullets button turns paragraphs into a bulleted list
2026-10-24 03:13:19 +07:00
BFlat 7f57a3a3f5 Merge pull request #3833 from Taha-Mahmoodi/feat/symbol-libraries
Symbols: Window › Symbol Libraries opens symbol libraries whose symbols click into the document's Symbols
2026-10-24 03:13:01 +07:00
BFlat 7d7af6b952 Merge pull request #3817 from Taha-Mahmoodi/feat/2572-thread-ports
Type: selected type shows its in and out ports, and the in port threads backwards
2026-10-24 03:12:44 +07:00
BFlat 629a4c528e Merge pull request #3832 from Taha-Mahmoodi/feat/distance-guides
Smart Guides: Alt over another object or the artboard shows the selection's distances to it
2026-10-24 03:12:28 +07:00
BFlat b5df562df7 Merge pull request #3785 from Taha-Mahmoodi/feat/pathfinder-trap
Pathfinder: Trap spreads the lighter colour into the darker as an overprinting strip where solid colours meet
2026-10-24 03:12:10 +07:00
BFlat b3f5b6c7a4 Merge pull request #3831 from Taha-Mahmoodi/feat/artboard-video-display
Artboards: Artboard Options shows video safe areas and sets the pixel aspect ratio that View › Rulers › Show Video Rulers counts the artboard in
2026-10-24 03:11:53 +07:00
BFlat 0f493464c0 Merge pull request #3815 from Taha-Mahmoodi/feat/2691-grid-arc-tool-options
Tools: double-clicking the Line Segment, Arc, Rectangular Grid and Polar Grid tools opens their Tool Options
2026-10-24 03:11:37 +07:00
BFlat 408ed5441c Merge pull request #3834 from MajedAlaejem/fix-select-text
feat: display point type baselines for node outlines and add hover test
2026-10-24 03:11:19 +07:00
BFlat 313ee822a5 Merge pull request #3778 from dotCooCoo/feat/pen-eraser-end-linux
Pen tablets: a pen's eraser end selects the Eraser on Linux under X11 and XWayland
2026-10-24 03:11:01 +07:00
BFlat 92898e5a73 Merge pull request #3854 from danngreen/feat/library-list-view
PR title: Libraries panel: show items as icons or in a list
2026-10-24 03:10:44 +07:00
BFlat 92d7937305 Merge pull request #3846 from marcoarnulfo/feat/pencil-shift-straight
Pencil: Shift held at the press draws a straight line at 45° steps
2026-10-24 03:10:26 +07:00
BFlat 791aaccbb9 Merge pull request #2847 from haranishi/review/statusbar-ruler-origin-20261018
Fix status-bar coordinates after changing the ruler origin
2026-10-24 03:10:09 +07:00
BFlat c1ef2ce61c Merge pull request #3775 from lewandowskit/pl-terminologia-2
i18n(pl): "Wtyczki i dyski robocze", "Geometryczne linie pomocnicze"
2026-10-24 03:09:57 +07:00
BFlat 221002194e Merge pull request #3842 from Janiz-zzz/fi-fixes-20261023
i18n(fi): fix package-note spacing and a few Finnish labels
2026-10-24 03:09:40 +07:00
bflatastic 0066447eac Global Edit: cache the highlight outlines per document revision 2026-10-24 03:09:12 +07:00
bflatastic 6e3ecc3adf Select: Start Global Edit edits the objects of the same shape together, each in proportion
Squashed from #3781 onto main.
2026-10-24 03:09:12 +07:00
bflatastic f247772042 Type: selected type shows its in and out ports, and the in port threads backwards
Squashed from #3817 onto main.
2026-10-24 03:09:10 +07:00
bflatastic 422ecc0c77 Artboards: Artboard Options shows video safe areas and sets the pixel aspect ratio that View › Rulers › Show Video Rulers counts the artboard in
Squashed from #3831 onto main.
2026-10-24 03:09:07 +07:00
bflatastic b3673b7f32 Fix status-bar coordinates after changing the ruler origin
Squashed from #2847 onto main.
2026-10-24 03:09:06 +07:00
bflatastic deb6afb2db i18n(fi): one row for the PDF security settings message (#3847 added it too) 2026-10-24 03:09:06 +07:00
BFlat 5c008243cd Merge pull request #3770 from Silvertree2010/fix/3666-legacy-ai-v7-round-trip-changes
Flatten transparent image pattern tiles in legacy .ai v7 export
2026-10-24 02:45:14 +07:00
BFlat 6fc0ec4e9a Merge pull request #3788 from Silvertree2010/fix/3577-audit-repeat-the-250-000-instanc
Count Repeats inside symbol art toward the Repeat instance budget
2026-10-24 02:44:58 +07:00
BFlat 47dfb127a2 Merge pull request #3813 from Taha-Mahmoodi/feat/variable-font-filter
Font menu: Font Technology › Variable lists only variable font families
2026-10-24 02:44:40 +07:00
BFlat 8d3d1f2162 Merge pull request #3808 from lehni/fix/svg-outlined-colour-order
SVG: type written as outlines stacks colour glyphs under their run's paint
2026-10-24 02:44:22 +07:00
BFlat 55aa6ec530 Merge pull request #3803 from lehni/fix/colour-glyphs-outlined
Type: colour glyphs go with type that effects reshape and Expand Appearance
2026-10-24 02:44:11 +07:00
BFlat 9e1ab82b07 Merge pull request #3804 from lehni/fix/svg-glyph-coordinates
Type: SVG glyph documents follow the SVG table's coordinate rules
2026-10-24 02:43:53 +07:00
BFlat d414c500fb Merge pull request #3755 from fortesnow/fix/pdf-font-split-postscript-name
Fonts: a family and style split from a PostScript name find the face once it is installed
2026-10-24 02:43:37 +07:00
BFlat 03be3d31b1 Merge pull request #3795 from dotCooCoo/feat/live-objects-in-symbol-art-kept
Render: live objects in symbol art and opacity masks keep their evaluations between frames
2026-10-24 02:43:21 +07:00
BFlat 5f36cc5813 Merge pull request #3823 from MiQ71/fix-3786-text-spacing-shortcuts
Fix text spacing shortcuts for selected type
2026-10-24 02:28:11 +07:00
BFlat 03b84fda34 Merge pull request #3814 from Taha-Mahmoodi/feat/simplify-part-of-path
Simplify: with part of a path direct-selected, Object › Path › Simplify refits only the selected runs of segments
2026-10-24 02:27:35 +07:00
BFlat b18dda34f5 Merge pull request #3791 from dotCooCoo/fix/opening-waits-only-for-a-drag
Open and Place: a file read in the background waits for a busy tool only during a drag
2026-10-24 02:26:57 +07:00