Commit Graph
5126 Commits
Author SHA1 Message Date
dotCooCoo 0083587131 Threaded text: Convert To Point Type on a frame no longer duplicates its text
Converting a frame of threaded text to point type left the frame's
text in the point type, and the re-flow also added that text to the
story, as it does for a frame that was deleted. The other frames then
held it a second time.

A frame that is still in the document as point type now leaves its
thread with the text it holds. The story flows through the other
frames without that text, so each character is held once. A thread
left with one frame is no longer a thread, and undo restores the
thread.

Docs: docs/mcp.md, docs/target-app-parity.md.
2026-10-24 02:05:18 +07:00
Marco Arnulfo 777930fcd2 Panels: a double-click on the strip of a group beside another does nothing
Such a group can't collapse, so the strip queued window.panel.collapse only for the command to refuse it and leave an error in the status bar.
2026-10-24 02:05:18 +07:00
Marco Arnulfo 0666e8e978 Panels: a double-click on the tab strip right of the tabs collapses the group (fixes #3620) 2026-10-24 02:05:18 +07:00
Marco Arnulfo 35104e10ed Panels: a double-click on a tab of a group beside another no longer reports an error 2026-10-24 02:05:18 +07:00
Marco Arnulfo 78396465a5 Type: a Ctrl/Cmd click away from the type being edited ends its edit (fixes #3779) 2026-10-24 02:05:18 +07:00
MarekSpodBiedry df2a350c41 Bring the window forward when Finder opens a file (#3769) 2026-10-24 02:05:18 +07:00
BFlat 6b27afd8eb Merge pull request #3776 from Silvertree2010/fix/3581-audit-rendering-nested-blending
Bound offscreen pixels kept alive by nested blending groups
2026-10-24 02:02:54 +07:00
BFlat 5dfa070f71 Merge pull request #3777 from Silvertree2010/fix/3580-audit-rendering-each-opacity-mas
Render opacity masks over the masked object's bounds
2026-10-24 02:02:37 +07:00
BFlat bd09003700 Merge pull request #3801 from Silvertree2010/fix/3574-audit-native-format-image-entrie
Share native-format entries naming the same bytes; cap copies at data
2026-10-24 02:02:18 +07:00
BFlat 16eb0e9c9a Merge pull request #3806 from Silvertree2010/fix/3570-audit-pdf-import-page-hash-decod
Hash PDF page contents without caching a decoded copy per page
2026-10-24 02:02:02 +07:00
BFlat a055646d7b Merge pull request #3800 from Silvertree2010/fix/3571-audit-dxf-import-anonymous-block
Cap path elements in DXF import across the whole file
2026-10-24 02:01:45 +07:00
BFlat 5d899aebfd Merge pull request #3794 from Silvertree2010/fix/3572-audit-dxf-import-nested-inserts
Bound DXF import work for nested inserts that produce no nodes
2026-10-24 02:01:28 +07:00
BFlat 54407b8139 Merge pull request #3789 from Silvertree2010/fix/3573-audit-dxf-import-each-minsert-re
Cap the total array insert copies in a DXF import
2026-10-24 02:01:12 +07:00
BFlat 124b50c667 Merge pull request #3754 from Silvertree2010/fix/3595-audit-dxf-import-paper-layouts-a
Fix quadratic paper layout de-duplication in DXF import
2026-10-24 02:00:53 +07:00
BFlat 2c0e11ceba Merge pull request #3822 from Silvertree2010/fix/3593-audit-eps-import-gstate-currentg
Charge gstate and currentgstate path copies to the memory budget
2026-10-24 02:00:40 +07:00
BFlat 00d7e6ca91 Merge pull request #3821 from Silvertree2010/fix/3568-audit-eps-import-image-sample-pl
Charge and bound EPS image sample planes on import
2026-10-24 02:00:25 +07:00
BFlat 05adda98ee Merge pull request #3810 from Silvertree2010/fix/3567-audit-eps-import-postscript-filt
Charge PostScript filter output to the EPS interpreter budget
2026-10-24 02:00:08 +07:00
BFlat a3a12f2ce7 Merge pull request #3816 from Silvertree2010/fix/3582-audit-eps-import-postscript-sear
Fix quadratic PostScript search in the EPS importer
2026-10-24 01:59:47 +07:00
BFlat 6f3269149d Merge pull request #3858 from Silvertree2010/fix/h1827-ascii85-encoder-can-start-its-fi
Keep ASCII85 output from starting its first line with '%'
2026-10-24 01:59:36 +07:00
BFlat e1da78fa75 Merge pull request #3771 from Silvertree2010/fix/3585-audit-eps-import-nan-reaches-f64
Raise undefinedresult for non-finite EPS arithmetic instead of panicking
2026-10-24 01:59:20 +07:00
BFlat d5f1557e98 Merge pull request #3847 from Taha-Mahmoodi/fix/pdf-security-message-i18n
i18n: every catalog translates "PDF security settings are not an object"
2026-10-24 01:59:02 +07:00
bflatastic e2713842c4 Bound offscreen pixels kept alive by nested blending groups
Squashed from #3776 onto main.
2026-10-24 01:44:01 +07:00
NetterSilverandClaude Opus 5.5 4331eba12e Render opacity masks over the masked object's bounds
Fixes #3580

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 01:44:00 +07:00
NetterSilverandClaude Opus 5.5 22057c973e Share native-format entries naming the same bytes; cap copies at data
Fixes #3574

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 01:44:00 +07:00
NetterSilverandClaude Haiku 5.5 58d94f6122 Hash PDF page contents without caching a decoded copy per page
Fixes #3570

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 01:43:59 +07:00
bflatastic 07762956d2 Cap path elements in DXF import across the whole file
Squashed from #3800 onto main.
2026-10-24 01:43:58 +07:00
NetterSilverandClaude Haiku 5.5 609132987b Bound DXF import work for nested inserts that produce no nodes
Fixes #3572

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 01:43:58 +07:00
bflatastic 5455e9be07 Cap the total array insert copies in a DXF import
Squashed from #3789 onto main.
2026-10-24 01:43:57 +07:00
NetterSilverandClaude Haiku 5.5 23bc1c0027 Fix quadratic paper layout de-duplication in DXF import
Fixes #3595

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 01:43:56 +07:00
bflatastic fd7c2eb977 Charge gstate and currentgstate path copies to the memory budget
Squashed from #3822 onto main.
2026-10-24 01:43:56 +07:00
bflatastic 246750c147 Charge and bound EPS image sample planes on import
Squashed from #3821 onto main.
2026-10-24 01:43:55 +07:00
NetterSilverandClaude Haiku 5.5 0b6097e572 Charge PostScript filter output to the EPS interpreter budget
Fixes #3567

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 01:43:54 +07:00
NetterSilverandClaude Haiku 5.5 3867e87036 Fix quadratic PostScript search in the EPS importer
Fixes #3582

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 01:43:54 +07:00
NetterSilverandClaude Haiku 5.5 abe277462b Keep ASCII85 output from starting its first line with '%'
Found while testing crates/eps/src/ps.rs:190-197 (ascii85)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 01:43:53 +07:00
NetterSilverandClaude Opus 5.5 b3df3d2069 Raise undefinedresult for non-finite EPS arithmetic instead of panicking
Fixes #3585

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 01:43:52 +07:00
Taha-Mahmoodi b9819ebd89 i18n: every catalog translates "PDF security settings are not an object"
#3836 added the message without @msg rows, so
complete_languages_translate_every_message fails on main (cs first, then
every language in COMPLETE_MESSAGES). Each row follows the catalog's own
"PDF settings are not an object" row and its word for Security.
2026-10-24 01:43:51 +07:00
aiongg 6757720bba Packaging: pin the signing client and appimagetool, and check their hashes (#3268)
* Packaging: pin the Windows signing client and check its hash

* Packaging: pin appimagetool and check its hash

* Packaging: pin the AppImage runtime, and stop clearly without a pinned hash

appimagetool otherwise embeds the unpinned type2-runtime continuous build. An
architecture with no pinned tool or runtime now exits with a message instead of
failing the hash check on an empty hash.
2026-10-23 14:06:11 -04:00
Dylan M. Taylor c6e6c23b99 packaging: use [[ for bash conditional tests (SonarCloud S7688) (#3853)
SonarCloud flags every bare [ conditional in bash scripts under packaging/ as a reliability smell (rule S7688). Convert the flagged [ ... ] tests to [[ ... ]]: safer word-splitting and no glob surprises, same semantics for these string and file tests.
2026-10-23 13:21:42 -04:00
Dylan M. TaylorDylan M. Taylorcoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
125df6d8ec G9: Preserve supplied passwords when confirming the Save PDF dialog (#3836)
Co-authored-by: Dylan M. Taylor <277927+dylanmtaylor@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-10-23 10:15:23 -04:00
BFlat 4a7cba0dd3 Merge pull request #3763 from Silvertree2010/fix/3588-audit-dxf-import-degenerate-spli
Stop tiny DXF spline weights from splitting every span to the cap
2026-10-23 12:00:01 +07:00
NetterSilverandClaude Opus 5.5 fb53e53eaf Stop tiny DXF spline weights from splitting every span to the cap
Fixes #3588

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 11:59:46 +07:00
BFlat 8906073438 Merge pull request #3762 from Silvertree2010/fix/3590-audit-dxf-import-hatch-source-ha
Stop DXF hatch source-handle loop at first missing handle
2026-10-23 11:50:04 +07:00
NetterSilverandClaude Haiku 5.5 77d1f8901f Stop DXF hatch source-handle loop at first missing handle
Fixes #3590

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 11:38:06 +07:00
BFlat 4c656c585c Merge pull request #3761 from dotCooCoo/feat/linux-pen-pressure
Linux: a tablet pen's pressure reaches the tools under X11 and XWayland
2026-10-23 11:31:32 +07:00
dotCooCoo 44b1310f49 Linux: a tablet pen's pressure reaches the tools under X11 and XWayland
On Linux under X11, and under XWayland, winit 0.30 hands a drawing
tablet's pen to the window as a mouse without its pressure. Every pen
stroke reached the tools at full pressure: a Calligraphic brush with
Size on Pressure drew one width, and the Liquify tools' Use Pressure
Pen applied full intensity.

When the window is on X11, the desktop app now reads XInput2 raw
events on a second X connection (x11rb's RustConnection, without
unsafe). A device with an "Abs Pressure" valuator is a pen, unless
its XInput type is TOUCHPAD or TOUCHSCREEN. Its pressure, scaled from
the valuator's range to 0..1, goes into Services::stylus, and another
pointer moving clears it. The canvas uses that pressure when a frame
has no touch force. A press takes the highest pressure of the pen's
latest touch since the canvas last read the feed, and waits up to
5 ms for the touch of a hovering pen. The moves and the release of a
held press keep the pressure the pen last touched with when its lift
has already arrived. Native Wayland is unchanged.

The valuator mapping and the reader come from PhotoCraft's tablet
crate (storytold/photocraft#255), with the pressure axis only.

Docs: README.md, docs/development.md, docs/hardware-parity.md,
docs/target-app-parity.md.
2026-10-23 11:31:17 +07:00
BFlat 0dbb67c1ff Merge pull request #3760 from Silvertree2010/fix/3589-audit-dxf-import-symbol-name-uni
Make DXF import symbol-name uniquing linear
2026-10-23 11:20:42 +07:00
NetterSilverandClaude Haiku 5.5 b16f44d87f Make DXF import symbol-name uniquing linear
Fixes #3589

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 11:20:15 +07:00
BFlat 6e1db2acd7 Merge pull request #3757 from Silvertree2010/fix/3591-audit-live-pathfinder-effects-ha
Cap the input of live Pathfinder effects
2026-10-23 11:08:22 +07:00
bflatastic c27ff0d96b Live Pathfinder budget: allow the manual lowest-bit form clippy flags, for rust-version 1.95 2026-10-23 11:08:06 +07:00
bflatastic d50afbcc1d Live Pathfinder budget: lowest set bit without the unstable isolate_lowest_one (rust-version 1.95) 2026-10-23 11:08:06 +07:00