Prevent grip clicks from starting area selection (#972)

Prevent grip clicks from starting area selection
This commit is contained in:
Hakan Seven authored and GitHub committed 2026-09-02 17:47:13 +03:00
commit 0ab1860948
2 files changed
+40 -4

No files matched your search

+19 -4
View File
@@ -2690,6 +2690,19 @@ impl OpenCADStudio {
};
let (vw, vh) = vp_size;
// An engaged grip owns the next left press (click-move-click placement
// or the release of a press-drag). Do not let the same press arm the
// normal box/lasso state or trigger another viewport control; the
// release path below will commit the grip.
if self.tabs[i].active_grip.is_some() {
self.tabs[i]
.scene
.selection
.borrow_mut()
.clear_left_selection_gesture();
return Task::none();
}
// Interactive navigation tools reuse the middle-button movement path,
// so no selection/pick logic runs while the left button drives them.
if self.tabs[i].orbit_mode
@@ -2879,6 +2892,11 @@ impl OpenCADStudio {
));
self.grip_hover = None;
self.grip_popup = None;
self.tabs[i]
.scene
.selection
.borrow_mut()
.clear_left_selection_gesture();
// A grip edit is not a CAD command, so explicitly seed the shared
// dynamic-input fields for the newly engaged grip.
@@ -2956,10 +2974,7 @@ impl OpenCADStudio {
// click doesn't read as an in-progress drag on later moves.
{
let mut sel = self.tabs[i].scene.selection.borrow_mut();
sel.left_down = false;
sel.left_press_pos = None;
sel.left_press_time = None;
sel.left_dragging = false;
sel.clear_left_selection_gesture();
}
let moved = grip.last_world != grip.origin_world;
if is_click && !moved {