mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 09:46:59 -06:00
A clip group answered a press only strictly inside its clipping path, and there the art above the path came first in the hit test, so where the clipped art extends past the mask's edge the clipping path's segments could not be reached on the canvas. With the new HitOptions::clip_outlines, which the Selection, Direct Selection and Group Selection tools set (ToolContext::selection_hit_options), a press within the selection tolerance of a clipping path's outline, inside or just outside it, hits the clipping path (HitKind::Outline) before the art it clips: Direct Selection takes its segments and the Selection tool the clip group. It applies to a clip group's clipping path and to a layer's clipping mask, and only to one a click may hit (may_hit: visible, editable, within reach). Inside the mask the art is hit as before. The other tools, which act on what is drawn (the eyedropper, type, gradients...), leave the option off, and hit_test_visible never applies it, so they still take the art at the mask's edge rather than the mask's empty appearance. Select Behind's one-pass walk takes a layer mask's outline first too, so it lists what the repeated hit test finds. Object Highlighting and a right-click's selection in the canvas (selection_hit_at) take what those tools take; dropping a swatch on art still hits what is drawn. The reference app reshapes a clipping path with Direct Selection: https://helpx.adobe.com/illustrator/desktop/manage-objects/edit-objects/edit-clipping-masks.html Tests in doc: a_clipping_path_is_hit_on_its_outline_before_its_art, only_the_selection_tools_hit_a_clipping_path_on_its_outline and select_behind_takes_a_layer_masks_outline_first; the random Select Behind test now clips layers and sublayers and sets clip_outlines, and fails without the Select Behind change. In tools, a_press_on_a_clipping_path_takes_its_segment_over_the_art fails without the change; select::a_press_on_a_masks_edge_selects_its_clip_group fails when the Selection tool uses the plain options; the eyedropper copies the art on the edge. Recorded in docs/ui-parity.md, docs/gaps.md and docs/target-app-parity.md. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>