From d62690b6523379a65e0cf2531246af1898c03648 Mon Sep 17 00:00:00 2001 From: Hakan Seven Date: Tue, 9 Jun 2026 23:22:34 +0300 Subject: [PATCH] fix(otrack): clear tracking points when command ends (#64) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OTRACK acquired tracking points by dwell during a command or grip drag, but only cleared them when OTRACK was toggled off — so the temporary tracking-point symbols (drawn straight from the point set) lingered in the view after the command ended. Drop the tracking points once neither a command nor a grip drag is active. Acquisition only happens during those, so this covers every exit path (Esc, cancel, commit) from one place. The tracking vector is a preview wire already cleared on cancel. Co-Authored-By: Claude Opus 4.8 --- src/app/update.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/app/update.rs b/src/app/update.rs index 5adf2ff42..8950a3806 100644 --- a/src/app/update.rs +++ b/src/app/update.rs @@ -60,6 +60,16 @@ impl OpenCADStudio { self.command_line.set_step_prompt(prompt); // Persist UI preferences whenever a toggle changes them (issue #68). self.persist_settings_if_changed(); + // OTRACK acquires tracking points only while a command or grip drag is + // running; drop them once neither is active so the temporary tracking + // points / vectors disappear when the command ends (issue #64). + let i = self.active_tab; + if self.tabs[i].active_cmd.is_none() + && self.tabs[i].active_grip.is_none() + && !self.snapper.tracking_points.is_empty() + { + self.snapper.clear_tracking(); + } task }