From 4487020efb544a1644a5db85311c2b7646dab3fb Mon Sep 17 00:00:00 2001 From: mTvare Date: Fri, 9 May 2025 13:19:48 +0530 Subject: [PATCH] Fix skew triangles showing up when transform cage isn't selected (#2638) Co-authored-by: Keavon Chambers --- .../tool/tool_messages/select_tool.rs | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/editor/src/messages/tool/tool_messages/select_tool.rs b/editor/src/messages/tool/tool_messages/select_tool.rs index 9affd74b..aa2e5648 100644 --- a/editor/src/messages/tool/tool_messages/select_tool.rs +++ b/editor/src/messages/tool/tool_messages/select_tool.rs @@ -650,16 +650,18 @@ impl Fsm for SelectToolFsmState { let is_resizing_or_rotating = matches!(self, SelectToolFsmState::ResizingBounds | SelectToolFsmState::SkewingBounds { .. } | SelectToolFsmState::RotatingBounds); - if let Some(bounds) = tool_data.bounding_box_manager.as_mut() { - let edges = bounds.check_selected_edges(input.mouse.position); - let is_skewing = matches!(self, SelectToolFsmState::SkewingBounds { .. }); - let is_near_square = edges.is_some_and(|hover_edge| bounds.over_extended_edge_midpoint(input.mouse.position, hover_edge)); - if is_skewing || (dragging_bounds && is_near_square && !is_resizing_or_rotating) { - bounds.render_skew_gizmos(&mut overlay_context, tool_data.skew_edge); - } - if !is_skewing && dragging_bounds { - if let Some(edges) = edges { - tool_data.skew_edge = bounds.get_closest_edge(edges, input.mouse.position); + if overlay_context.visibility_settings.transform_cage() && bounds.is_some() { + if let Some(bounds) = tool_data.bounding_box_manager.as_mut() { + let edges = bounds.check_selected_edges(input.mouse.position); + let is_skewing = matches!(self, SelectToolFsmState::SkewingBounds { .. }); + let is_near_square = edges.is_some_and(|hover_edge| bounds.over_extended_edge_midpoint(input.mouse.position, hover_edge)); + if is_skewing || (dragging_bounds && is_near_square && !is_resizing_or_rotating) { + bounds.render_skew_gizmos(&mut overlay_context, tool_data.skew_edge); + } + if !is_skewing && dragging_bounds { + if let Some(edges) = edges { + tool_data.skew_edge = bounds.get_closest_edge(edges, input.mouse.position); + } } } }