Skip to content

Commit 75ff4e0

Browse files
committed
Fix gradient scope and missing aspect initializers
1 parent 78d3adf commit 75ff4e0

2 files changed

Lines changed: 28 additions & 27 deletions

File tree

editor/src/messages/portfolio/document/graph_operation/graph_operation_message_handler.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -798,6 +798,7 @@ fn apply_usvg_fill(fill: &usvg::Fill, modify_inputs: &mut ModifyInputsContext, b
798798
gradient_type,
799799
stops,
800800
spread_method,
801+
aspect: 1.,
801802
})
802803
}
803804
usvg::Paint::RadialGradient(radial) => {
@@ -828,6 +829,7 @@ fn apply_usvg_fill(fill: &usvg::Fill, modify_inputs: &mut ModifyInputsContext, b
828829
gradient_type,
829830
stops,
830831
spread_method,
832+
aspect: 1.,
831833
})
832834
}
833835
usvg::Paint::Pattern(_) => {

editor/src/messages/tool/tool_messages/gradient_tool.rs

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -846,33 +846,32 @@ impl Fsm for GradientToolFsmState {
846846
Some(1.),
847847
);
848848
}
849-
}
850-
851-
if gradient.gradient_type == GradientType::Radial {
852-
let major_vec = end - start;
853-
let major_len = major_vec.length();
854-
if major_len > f64::EPSILON {
855-
let minor_len = major_len * gradient.aspect;
856-
let major_dir = major_vec / major_len;
857-
let minor_dir = major_dir.perp();
858-
let center = start;
859-
860-
let minor_pos_vp = center + minor_dir * minor_len;
861-
let minor_neg_vp = center - minor_dir * minor_len;
862-
863-
let angle = major_dir.y.atan2(major_dir.x);
864-
overlay_context.dashed_ellipse(center, major_len, minor_len, Some(angle), None, None, None, None, Some(COLOR_OVERLAY_BLUE), Some(4.), Some(4.), None);
865-
866-
overlay_context.line(center, minor_pos_vp, Some(COLOR_OVERLAY_BLUE), None);
867-
overlay_context.line(center, minor_neg_vp, Some(COLOR_OVERLAY_BLUE), None);
868-
869-
let minor_tol_sq = (MANIPULATOR_GROUP_MARKER_SIZE * 2.).powi(2);
870-
let pos_active = dragging == Some(GradientDragTarget::RadialMinorPos);
871-
let neg_active = dragging == Some(GradientDragTarget::RadialMinorNeg);
872-
let pos_hovered = !pos_active && !matches!(self, GradientToolFsmState::Drawing { .. }) && minor_pos_vp.distance_squared(mouse) < minor_tol_sq;
873-
let neg_hovered = !neg_active && !matches!(self, GradientToolFsmState::Drawing { .. }) && minor_neg_vp.distance_squared(mouse) < minor_tol_sq;
874-
overlay_context.manipulator_handle(minor_pos_vp, pos_active || pos_hovered, None);
875-
overlay_context.manipulator_handle(minor_neg_vp, neg_active || neg_hovered, None);
849+
if gradient.gradient_type == GradientType::Radial {
850+
let major_vec = end - start;
851+
let major_len = major_vec.length();
852+
if major_len > f64::EPSILON {
853+
let minor_len = major_len * gradient.aspect;
854+
let major_dir = major_vec / major_len;
855+
let minor_dir = major_dir.perp();
856+
let center = start;
857+
858+
let minor_pos_vp = center + minor_dir * minor_len;
859+
let minor_neg_vp = center - minor_dir * minor_len;
860+
861+
let angle = major_dir.y.atan2(major_dir.x);
862+
overlay_context.dashed_ellipse(center, major_len, minor_len, Some(angle), None, None, None, None, Some(COLOR_OVERLAY_BLUE), Some(4.), Some(4.), None);
863+
864+
overlay_context.line(center, minor_pos_vp, Some(COLOR_OVERLAY_BLUE), None);
865+
overlay_context.line(center, minor_neg_vp, Some(COLOR_OVERLAY_BLUE), None);
866+
867+
let minor_tol_sq = (MANIPULATOR_GROUP_MARKER_SIZE * 2.).powi(2);
868+
let pos_active = dragging == Some(GradientDragTarget::RadialMinorPos);
869+
let neg_active = dragging == Some(GradientDragTarget::RadialMinorNeg);
870+
let pos_hovered = !pos_active && !matches!(self, GradientToolFsmState::Drawing { .. }) && minor_pos_vp.distance_squared(mouse) < minor_tol_sq;
871+
let neg_hovered = !neg_active && !matches!(self, GradientToolFsmState::Drawing { .. }) && minor_neg_vp.distance_squared(mouse) < minor_tol_sq;
872+
overlay_context.manipulator_handle(minor_pos_vp, pos_active || pos_hovered, None);
873+
overlay_context.manipulator_handle(minor_neg_vp, neg_active || neg_hovered, None);
874+
}
876875
}
877876
}
878877

0 commit comments

Comments
 (0)