From 6a767390dd24964f421a253cdb29cc970bffebdb Mon Sep 17 00:00:00 2001 From: gianlucafiore <50465150+gianlucafiore@users.noreply.github.com> Date: Thu, 15 Oct 2026 20:02:21 -0300 Subject: [PATCH] fix(otrack): allow Extension tracking intersections while preserving point snap priority --- src/app/update/viewport.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/app/update/viewport.rs b/src/app/update/viewport.rs index e8b0198ef..859b5234b 100644 --- a/src/app/update/viewport.rs +++ b/src/app/update/viewport.rs @@ -1846,7 +1846,12 @@ impl OpenCADStudio { if axis_lock.is_none() && otrack_hit.is_none() - && !snap_hit.is_some_and(|s| s.snap_type != crate::snap::SnapType::Grid) + && !snap_hit.is_some_and(|s| { + !matches!( + s.snap_type, + crate::snap::SnapType::Grid | crate::snap::SnapType::Extension + ) + }) { let base = grip.origin_world; let ucs_xf = self.tabs[i].ucs_xform(); @@ -2682,9 +2687,13 @@ impl OpenCADStudio { // Otherwise the endpoint glyph can appear at the // corner while the preview/accepted point follows the // tracking line instead. - !self.tabs[i] - .snap_result - .is_some_and(|s| s.snap_type != crate::snap::SnapType::Grid) + !self.tabs[i].snap_result.is_some_and(|s| { + !matches!( + s.snap_type, + crate::snap::SnapType::Grid + | crate::snap::SnapType::Extension + ) + }) }) { h.aligned } else {