fix: preserve perpendicular tracking after typed distance

This commit is contained in:
gianlucafiore committed 2026-10-07 20:02:09 -03:00
1 parent 6df70538ea
commit 99fff30c53
3 files changed
+111 -2

No files matched your search

+5 -1
View File
@@ -977,7 +977,8 @@ pub(super) fn on_tab_close(&mut self, idx: usize) -> Task<Message> {
// A tracking ray carries its own base, so it needs no anchor: that is
// how OTRACK and Extension accepted a bare distance for the *first*
// point of a command, before any anchor exists.
let pt = if let Some((base, dir)) = self.active_distance_ray(i) {
let distance_ray = self.active_distance_ray(i);
let pt = if let Some((base, dir)) = distance_ray {
base + dir * dist
} else {
let anchor = self.tabs[i]
@@ -1010,6 +1011,9 @@ pub(super) fn on_tab_close(&mut self, idx: usize) -> Task<Message> {
self.dyn_coord_absolute = false;
self.sync_dyn_fields();
self.reset_tracking_after_point();
if let Some((_, dir)) = distance_ray {
self.snapper.remember_distance_reference(dir);
}
self.push_ucs_to_cmd(i);
let result = self.tabs[i].active_cmd.as_mut().map(|c| c.on_point(pt))?;