fix(model): repair solid selection flows

This commit is contained in:
Hakan Seven 2026-08-23 23:44:03 +03:00
commit 7794736271
6 changed files with 237 additions and 14 deletions

View file

@ -683,8 +683,12 @@ impl OpenCADStudio {
}
}
let was_active = self.tabs[self.active_tab].active_cmd.is_some();
let preserve_selection =
matches!(result, CmdResult::Relaunch(..) | CmdResult::Dispatch(..));
let preserve_selection = matches!(
&result,
CmdResult::Relaunch(..)
| CmdResult::Dispatch(..)
| CmdResult::SolidSubtract { .. }
);
let task = self.apply_cmd_result_inner(result);
let i = self.active_tab;
let preview_hidden = self.tabs[i]
@ -3251,6 +3255,15 @@ impl OpenCADStudio {
return task;
}
CmdResult::SolidSubtract { bases, cutters } => {
let task = self.solid_subtract(&bases, &cutters);
self.tabs[i].active_cmd = None;
self.tabs[i].snap_result = None;
self.tabs[i].scene.clear_preview_wire();
self.restore_pre_cmd_tangent();
return task;
}
CmdResult::HatcheditApply {
handle,
name,