fix(zoom): Zoom Extents fits full drawing on first use

The viewport context-menu item dispatched a bare "ZOOM" string, which no
command branch handled, so it did nothing. Send "ZOOM EXTENTS" instead.

fit_all() also fed on the frustum-culled wire set, so it only framed the
entities already on screen — each invocation revealed a little more and the
view converged on the true extent only after several uses (issue #51). It
now builds an un-culled wire set at a fixed tessellation tolerance, so the
bounds are zoom-independent and the first call fits the whole drawing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Hakan Seven 2026-05-30 21:40:48 +03:00
commit e4668c66e7
2 changed files with 12 additions and 2 deletions

View file

@ -1458,7 +1458,7 @@ fn viewport_context_menu_overlay(
items.push(item("Quick Select...".to_string(), Message::QSelectOpen));
items.push(item(
"Zoom Extents".to_string(),
Message::Command("ZOOM".to_string()),
Message::Command("ZOOM EXTENTS".to_string()),
));
}