Show a mask as soon as it is made
Benchmarks / CPU and I/O (per commit) (push) Successful in 3m52s
Benchmarks / Frame budget (on demand) (push) Skipped
Build and test / Desktop (Linux) (push) Failing after 39m53s
Build and test / Layer separation (push) Successful in 1m0s
🐳 Android image / Build and push (push) Successful in 4s
Build and test / android-image (push) Successful in 4s
Traceability / Requirement traces (push) Successful in 46s
Build and test / Android (aarch64) (push) Successful in 25m19s
Benchmarks / CPU and I/O (per commit) (push) Successful in 3m52s
Benchmarks / Frame budget (on demand) (push) Skipped
Build and test / Desktop (Linux) (push) Failing after 39m53s
Build and test / Layer separation (push) Successful in 1m0s
🐳 Android image / Build and push (push) Successful in 4s
Build and test / android-image (push) Successful in 4s
Traceability / Requirement traces (push) Successful in 46s
Build and test / Android (aarch64) (push) Successful in 25m19s
Choosing a category is asking what it selected, and for a subject or a category that question had no other answer on screen: the model's outline is not derivable from anything visible, a fresh layer carries no adjustment to judge it by, and the list it was chosen from says "architecture 23%" without saying which 23%. The control that draws the mask existed but had to be found and pressed, a panel's height away from the list the choice was made in. So a new layer arrives with its mask showing, from the resting position only. Somebody who has chosen the alpha or the outline keeps it, and nothing re-arms in the background — every caller is a press that asked for a new mask. That makes the canvas depend on how a layer arrived, which is correct and worth stating: a session that has just made a mask draws a frame that a session which read the same mask out of a sidecar does not. Viewing state is not edit state and does not travel in a file, and `a_stored_mask_renders_exactly_what_the_model_rendered` now says so at both ends.
This commit is contained in:
@@ -1027,14 +1027,11 @@ pub(crate) fn wire(
|
||||
// until something is painted into it, so a press that made a row
|
||||
// and left the pointer in "select" would be indistinguishable from
|
||||
// a button that did nothing. The same reasoning as `on_part_added`
|
||||
// below, and the tool's own handler turns the mask view on.
|
||||
// below. Showing the mask is `DevelopSession::show_new_mask`'s
|
||||
// job and every route to a new layer goes through it, so only the
|
||||
// tool is set here.
|
||||
if made {
|
||||
w.global::<Masking>().set_tool(1);
|
||||
if let Some(s) = session.borrow_mut().as_mut() {
|
||||
if s.mask_view() == 0 {
|
||||
s.set_mask_view(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
sync(&w, &session);
|
||||
sync_rows(&w, &rows, &session);
|
||||
|
||||
Reference in New Issue
Block a user