fix: feet-inch dynamic input, STRETCH preselection, ribbon title wrap

- Dynamic-input fields take ' and " and read 2'9" / 3' as lengths (#937)
- STRETCH on a selection made by a crossing window stretches through that
  window and goes straight to the base point (#1068)
- STRETCH's crossing-window steps show no coordinate boxes (#657)
- Collapsed ribbon panel titles wrap at words, never mid-word (#920)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hakan SevenandClaude Opus 5.5 committed 2026-10-06 16:15:35 +03:00
1 parent 178c7dff41
commit 1cbcc8f4c5
9 files changed
+67 -5

No files matched your search

+21
View File
@@ -67,6 +67,21 @@ impl StretchCommand {
}
}
/// A selection made by a crossing window before the command: that window
/// marks what moves, so the command goes straight to the base point.
pub fn preselected(
handles: Vec<Handle>,
wire_models: Vec<WireModel>,
window: (DVec3, DVec3),
) -> Self {
Self {
handles,
wire_models,
windows: vec![window],
step: Step::Base,
}
}
/// Continue gathering crossing windows after the host has resolved the
/// entities touched by the latest window.
pub fn with_windows(
@@ -223,6 +238,12 @@ impl CadCommand for StretchCommand {
matches!(self.step, Step::WindowCorner1 | Step::WindowCorner2(_))
}
fn selects_by_window(&self) -> bool {
// Crossing windows select what stretches; dynamic input has nothing
// to enter there (#657).
self.window_corner_pick()
}
fn window_first_corner(&self) -> Option<DVec3> {
// Expose the first corner so the host draws a filled crossing marquee to
// the cursor, matching a normal box selection instead of a bare outline.