Commit Graph
4120 Commits
Author SHA1 Message Date
aiongg 3bb1b49457 Merge PR #6263: fix(ui): Paths panel footer: cut-off hover highlight and scroll jiggle (part of #6238) 2026-10-22 15:37:44 +00:00
aiongg c5abd43a22 Merge PR #6158: Title bar: a window move the window manager finished no longer blocks the next move or resize (#5725)
contributors/people.toml: union of both sides' entries.
2026-10-22 15:37:43 +00:00
aiongg bf687928c2 Merge PR #5936: fix(ui): ensure turning View -> Snap off disables all snapping (#5782) 2026-10-22 15:37:43 +00:00
aiongg 8600ae79b0 Merge PR #5631: Workspace: list saved workspaces in Window > Workspace and the switcher (#5610) 2026-10-22 15:37:42 +00:00
Zuujis 38bc5e916c refactor(atn): build the clipping-mask and three adjustment events with macros (#8401)
Create/Release Clipping Mask and Brightness/Contrast, Black & White and
Gradient Map were written out by hand with the same body as
adjustment_event! or each other, which SonarCloud counts as duplicated new
code (photocraft's quality gate fails on 9.8% duplication from the GrpL
entry). adjustment_event! takes an optional command id, and clipping_event!
builds the two clipping events. The mapping table is unchanged.
2026-10-21 20:28:12 -04:00
Dylan M. Taylor f4bc90b93f ci: pin GitHub Actions to full commit SHA (SonarCloud githubactions:S7637) (#8368)
Pin third-party actions to full-length commit SHAs (with version comments)
instead of mutable tags/branches to prevent supply-chain tampering via
retagged releases. Resolves SonarCloud rule githubactions:S7637.
2026-10-21 20:12:22 -04:00
Dylan M. Taylor 3ec52a9ff1 security: enforce HTTPS on curl downloads (SonarCloud S6506) (#8369)
Add --proto '=https' to curl invocations so redirects cannot downgrade to
plaintext HTTP. Resolves SonarCloud S6506 (shell/docker/githubactions).
2026-10-21 20:11:03 -04:00
Dylan M. Taylor 9b18f57344 test: use tokio::time::sleep in async test poll loop (SonarCloud rust:S7488) (#8373)
The multi-thread #[tokio::test] polled with a blocking std::thread::sleep,
stalling a runtime worker. Use tokio::time::sleep(..).await instead.
2026-10-21 19:35:38 -04:00
aiongg ad694eb17d Merge pull request #8370 from storytold/sonar-fix/actions-script-injection
security: prevent script injection in fuzz workflow (SonarCloud S7630)
2026-10-21 19:26:09 -04:00
aiongg ba40dffb25 Merge pull request #8355 from aiongg/integration-10
Integration batch: #8229, David's follow-ups and 85 FredApps-approved PRs on main
2026-10-21 19:02:54 -04:00
aiongg ce85a5ae78 Merge PR #8229: Integration batch: 8 PRs on main 2026-10-21 22:30:00 +00:00
aiongg 33214b70f4 Merge PR #6708: Paths: the path selected in the Paths panel is drawn on the canvas (#6550) 2026-10-21 22:30:00 +00:00
aiongg 989a685b3f Merge PR #6208: Preferences: Save in Background off saves in the foreground (#6207) 2026-10-21 22:29:59 +00:00
aiongg 3b04ff873c Merge PR #5840: Export As: Resample menu, incl. Nearest Neighbor (#5838) 2026-10-21 22:29:59 +00:00
aiongg f32f882f3a Merge main into integration-10
# Conflicts:
#	apps/photocraft-web/src/web.rs
#	apps/photocraft/src/services.rs
#	crates/engine/src/file_cmds/tests.rs
#	crates/engine/src/float_cmds.rs
#	crates/engine/src/float_cmds/tests.rs
#	xtask/src/corpus.rs
#	xtask/src/corpus_pins.rs
#	xtask/src/main.rs
2026-10-21 21:56:26 +00:00
aiongg 21a952698a Integration: Lens Flare and the render filters' colours read with main's double and typed enum_name helpers, for #6160 2026-10-21 21:56:22 +00:00
aiongg 1a388f8ba7 Merge PR #8229: Integration batch: 8 PRs on main
# Conflicts:
#	crates/io/src/smart_map.rs
#	docs/file-format-parity.md
2026-10-21 21:56:22 +00:00
aiongg 64d042aef5 Integration: Create Clipping Mask also maps the GrpL code and a named-layer target, for #6881 and #4496 2026-10-21 21:56:21 +00:00
aiongg 0e9cbbc88e Integration: one tools.setColors and one clipping-mask mapping in .atn export, for #6881 and #4496 2026-10-21 21:56:21 +00:00
aiongg 719fb44d42 Merge PR #6881: Actions: .atn Select Subject, Select and Mask, Color Range, clipping and layer masks, colours map to commands (part of #6745) 2026-10-21 21:56:21 +00:00
aiongg 3b16c2bc98 Merge PR #5729: Move tool: ΔX/ΔY readout beside the pointer while dragging (#5727) 2026-10-21 21:56:21 +00:00
aiongg bd133eee81 Merge PR #5855: Displace: OK asks for the displacement map, as in Photoshop (#5806) 2026-10-21 21:56:21 +00:00
aiongg 43e9587590 Merge PR #6363: New Document: Color Profile, the working space or another profile of the mode (#321) 2026-10-21 21:56:21 +00:00
aiongg 20adb5f1d7 Merge PR #6410: Artboards: layers outside the boards stay visible over the pasteboard (#5712) 2026-10-21 21:56:21 +00:00
aiongg 1bc45862cb Merge PR #6813: A layer that doesn't fit in GPU memory no longer breaks GPU drawing: older pages are freed and the layer is retried 2026-10-21 21:56:21 +00:00
aiongg 64526a6c28 Merge PR #7904: Filter Gallery › Halftone Pattern: a tone-keeping screen at 45° 2026-10-21 21:56:21 +00:00
aiongg f97c28828d Merge PR #6873: HEIF: honour the nclx colour description; HLG/PQ HEICs open as linear BT.2020 32-bit (#6752) 2026-10-21 21:56:21 +00:00
aiongg 1837a19362 Merge PR #6908: Background redraw: keep the last finished composites, so a solo's restore uploads instead of recompositing (part of #6528) 2026-10-21 21:56:21 +00:00
aiongg 29388de427 Merge PR #6919: Selections don't mark a document modified (#6865) 2026-10-21 21:56:21 +00:00
aiongg c71322043c Merge PR #7941: Light themes outline the slider knob (UI-217-11, #7927) 2026-10-21 21:56:21 +00:00
aiongg e4a413241a Merge PR #8004: Windows on ARM: auto picks DirectX 12 for Qualcomm graphics (#7537) 2026-10-21 21:56:21 +00:00
aiongg 403dc5043a Merge PR #8096: CodeRabbit follow-ups for the #8095 batch 2026-10-21 21:56:21 +00:00
aiongg 07e4020360 Merge PR #8098: PSD layer comps: an entry without enab inherits the previous visibility, as in Photoshop (#8093) 2026-10-21 21:56:21 +00:00
aiongg 3b6fabb04a Merge PR #6801: Actions that start with Deselect play on when nothing is selected 2026-10-21 21:56:21 +00:00
aiongg a06c4639f6 Merge PR #5590: Warp: apply a large layer's warp in the background, with progress and Esc to cancel (#1015) 2026-10-21 21:56:21 +00:00
aiongg 7b81efddcb Merge PR #5436: IO: open .psd through the PSD reader, not codecs (#5258) 2026-10-21 21:56:21 +00:00
aiongg dd83f87d3c Merge PR #5581: Layers: Group Layers creates the group collapsed (#5571) 2026-10-21 21:56:20 +00:00
aiongg 0fe1d3233d Merge PR #5907: Text: apply anti-alias mode shaping when rasterizing type (#5902) 2026-10-21 21:56:20 +00:00
aiongg c865e3b93b Merge PR #5928: BMP export: Indexed Color documents save as palette BMPs 2026-10-21 21:56:20 +00:00
aiongg b9b97f15ff Merge PR #6243: GPU: pin the keep-overlap ordering with a tile-growth regression test 2026-10-21 21:56:20 +00:00
aiongg 5eada4996a Merge PR #7219: Actions: record File › Export › Export As and replay it with its settings (#7207) 2026-10-21 21:56:20 +00:00
aiongg abfb8cce96 Merge PR #8042: Codecs: Fix corrupted CMYK JPEG exports (#8008) 2026-10-21 21:56:11 +00:00
aiongg fa5a06de4f Merge PR #8053: Pencil: align 1 px click snapping with the line walker (#4895) 2026-10-21 21:56:11 +00:00
aiongg fb9da6d581 Merge PR #7303: Keyboard Shortcuts: Shift is recorded when capturing a shortcut 2026-10-21 21:56:11 +00:00
aiongg a870371600 Merge PR #7270: Brushes: folders with search matches can be collapsed while searching 2026-10-21 21:56:11 +00:00
aiongg f38e0e40bd Merge PR #7304: Freeform Pen: ⇧ constrains freehand strokes to straight 45° lines 2026-10-21 21:56:11 +00:00
aiongg 9ce8ab897c Merge PR #7317: Color panel: RGB slider mode (#7172) 2026-10-21 21:56:11 +00:00
aiongg a0d6bf2dcd Merge PR #7791: Camera raw: a developed raw keeps its EXIF (RW2 included), so File Info shows its Camera Data (#6957) 2026-10-21 21:56:11 +00:00
aiongg b75f0cf21d Merge PR #7799: Displace on a Smart Object: the map is embedded in the smart filter, so it displaces (#7423) 2026-10-21 21:56:10 +00:00
aiongg f3c20b9242 Merge PR #7626: Flatpak: a second launch hands its files to the running PhotoCraft over a Unix socket (#1540) 2026-10-21 21:56:10 +00:00