feat(snap): dashed extension guide line for the Extension osnap (#238)

The Extension object snap worked but drew no tracking path, so it was
easy to miss — users had to keep the cursor exactly on the invisible
extension line without any visual cue.

When an Extension snap is active, draw a dashed guide line from the
endpoint it extends from, through the snap point and a little beyond,
and orient the three-dot marker along that direction. SnapResult carries
the endpoint screen position (filled once the winning snap is known);
the overlay renders the guide.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Hakan Seven 2026-07-01 19:39:21 +03:00
commit 1614fd9ab2
4 changed files with 97 additions and 2 deletions

View file

@ -1068,6 +1068,7 @@ pub(super) fn on_tick(&mut self, t: Instant) -> Task<Message> {
screen,
snap_type: SnapType::ObjectPick,
tangent_obj: None,
extension_base: None,
});
if let Some(cmd) = self.tabs[i].active_cmd.as_mut() {
cmd.set_acquisition_hint(Some(pick.label));