Make Select tool hover overlay in 'shallow select' mode visualize the next deeper object (#2639)

* Fix overlay behaviour on hovering over a layer

* Add the deepen overlay code

* cleanup
This commit is contained in:
mTvare
2025-05-11 07:53:38 -07:00
committed by GitHub
parent 4487020efb
commit c9984a8f1a
6 changed files with 90 additions and 28 deletions
@@ -449,10 +449,10 @@ impl SnapManager {
if let Some(ind) = &self.indicator {
for layer in &ind.outline_layers {
let &Some(layer) = layer else { continue };
overlay_context.outline(snap_data.document.metadata().layer_outline(layer), snap_data.document.metadata().transform_to_viewport(layer));
overlay_context.outline(snap_data.document.metadata().layer_outline(layer), snap_data.document.metadata().transform_to_viewport(layer), None);
}
if let Some(quad) = ind.target_bounds {
overlay_context.quad(to_viewport * quad, None);
overlay_context.quad(to_viewport * quad, None, None);
}
let viewport = to_viewport.transform_point2(ind.snapped_point_document);
@@ -570,7 +570,7 @@ impl BoundingBoxManager {
let quad = self.transform * Quad::from_box(self.bounds);
// Draw the bounding box rectangle
overlay_context.quad(quad, None);
overlay_context.quad(quad, None, None);
}
/// Update the position of the bounding box and transform handles
@@ -587,7 +587,7 @@ impl BoundingBoxManager {
let mut draw_handle = |point: DVec2, angle: f64| {
let quad = DAffine2::from_angle_translation(angle, point) * Quad::from_box([DVec2::splat(-RESIZE_HANDLE_SIZE / 2.), DVec2::splat(RESIZE_HANDLE_SIZE / 2.)]);
overlay_context.quad(quad, Some(COLOR_OVERLAY_WHITE));
overlay_context.quad(quad, None, Some(COLOR_OVERLAY_WHITE));
};
let horizontal_angle = (quad.top_left() - quad.bottom_left()).to_angle();