Offer a mask that is nothing but a hand

Every route to a layer began with a selection — a gradient, a band, a subject,
a category — and painting was reachable only by making one of those and
joining a painted part to it. So the answer to "brush a correction onto this
corner of the sky" was "add a radial gradient you do not want, then paint into
that", which is not an answer.

Paint sits beside Linear and Radial and makes a layer whose base is a brush.
It covers nothing until a stroke lands in it, so pressing it arms the brush
and shows the mask as well: a row that appeared and changed no pixel, with the
pointer still in "select", is indistinguishable from a button that did nothing.
This commit is contained in:
2026-09-10 20:28:09 +02:00
parent c045702a47
commit 76ad667fd6
3 changed files with 78 additions and 0 deletions
+16
View File
@@ -970,6 +970,22 @@ export component MaskPanel inherits Rectangle {
enabled: Develop.enabled;
clicked => { Masking.add-gradient(true); }
}
// TRACES: FR-DEV-19b
// **A mask that is nothing but a hand.** Beside the gradients
// because it belongs to the same answer to "where" — and because
// without it the only way to reach the brush was to make a
// gradient nobody wanted and paint into that.
//
// It covers nothing until a stroke lands, so pressing this arms
// the brush as well as making the layer: a row that appeared and
// changed no pixel, with the pointer still in "select", would look
// exactly like a button that did nothing.
Button {
text: "Paint";
enabled: Develop.enabled;
clicked => { Masking.add-brush(); }
}
}
// Ranges, on their own row rather than beside the gradients. A