SHELL: do not index an empty selection when the command starts

`bool::then_some` evaluates its argument eagerly, so starting SHELL or
SOLIDEDIT with nothing selected indexed an empty vector and aborted the
application. The single-solid target now comes from a slice match.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
ramox81andClaude Fable 5.1 committed 2026-09-22 13:40:42 +03:00
1 parent 960d51d955
commit 99eadd7609
1 file changed
+7 -1
+7 -1
View File
@@ -2006,7 +2006,13 @@ impl OpenCADStudio {
)
})
.collect::<Vec<_>>();
let target = (selected.len() == 1).then_some(selected[0]);
// `then_some` evaluates its argument eagerly: indexing an empty
// selection here crashed the app when SHELL was started with
// nothing selected.
let target = match selected.as_slice() {
[handle] => Some(*handle),
_ => None,
};
let new_cmd = if cmd == "SHELL" {
ShellCommand::direct(target)
} else {