mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-25 04:28:11 +08:00
Improve layer panel positioning for upstream nodes (#1928)
* Improve layer panel positioning for upstream nodes * highlight parents * Final improvements * Fill for selection box, bug fixes * Code review --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
co-authored by
Keavon Chambers
parent
da13f21486
commit
2bd213f1aa
@@ -259,7 +259,7 @@ impl Fsm for GradientToolFsmState {
|
||||
let Gradient { start, end, stops, .. } = gradient;
|
||||
let (start, end) = (transform.transform_point2(start), transform.transform_point2(end));
|
||||
|
||||
overlay_context.line(start, end);
|
||||
overlay_context.line(start, end, None);
|
||||
overlay_context.manipulator_handle(start, dragging == Some(GradientDragTarget::Start));
|
||||
overlay_context.manipulator_handle(end, dragging == Some(GradientDragTarget::End));
|
||||
|
||||
|
||||
@@ -461,7 +461,12 @@ impl Fsm for PathToolFsmState {
|
||||
|
||||
match self {
|
||||
Self::DrawingBox => {
|
||||
overlay_context.quad(Quad::from_box([tool_data.drag_start_pos, tool_data.previous_mouse_position]));
|
||||
let fill_color = graphene_std::Color::from_rgb_str(crate::consts::COLOR_OVERLAY_BLUE.strip_prefix('#').unwrap())
|
||||
.unwrap()
|
||||
.with_alpha(0.05)
|
||||
.rgba_hex();
|
||||
|
||||
overlay_context.quad(Quad::from_box([tool_data.drag_start_pos, tool_data.previous_mouse_position]), Some(&("#".to_string() + &fill_color)));
|
||||
}
|
||||
Self::Dragging => {
|
||||
tool_data.snap_manager.draw_overlays(SnapData::new(document, input), &mut overlay_context);
|
||||
|
||||
@@ -469,15 +469,15 @@ impl Fsm for PenToolFsmState {
|
||||
let valid = |point: DVec2, handle: DVec2| point.distance_squared(handle) >= HIDE_HANDLE_DISTANCE * HIDE_HANDLE_DISTANCE;
|
||||
let next_point = transform.transform_point2(tool_data.next_point);
|
||||
let next_handle_start = transform.transform_point2(tool_data.next_handle_start);
|
||||
overlay_context.line(next_point, next_handle_start);
|
||||
overlay_context.line(next_point, next_handle_start, None);
|
||||
let start = tool_data.latest_point().map(|point| transform.transform_point2(point.pos));
|
||||
|
||||
let handle_start = tool_data.latest_point().map(|point| transform.transform_point2(point.handle_start));
|
||||
let handle_end = tool_data.handle_end.map(|point| transform.transform_point2(point));
|
||||
|
||||
if let (Some(start), Some(handle_start), Some(handle_end)) = (start, handle_start, handle_end) {
|
||||
overlay_context.line(start, handle_start);
|
||||
overlay_context.line(next_point, handle_end);
|
||||
overlay_context.line(start, handle_start, None);
|
||||
overlay_context.line(next_point, handle_end, None);
|
||||
|
||||
path_overlays(document, shape_editor, &mut overlay_context);
|
||||
|
||||
|
||||
@@ -471,7 +471,11 @@ impl Fsm for SelectToolFsmState {
|
||||
}
|
||||
|
||||
// Update the selection box
|
||||
overlay_context.quad(quad);
|
||||
let fill_color = graphene_std::Color::from_rgb_str(crate::consts::COLOR_OVERLAY_BLUE.strip_prefix('#').unwrap())
|
||||
.unwrap()
|
||||
.with_alpha(0.05)
|
||||
.rgba_hex();
|
||||
overlay_context.quad(quad, Some(&("#".to_string() + &fill_color)));
|
||||
}
|
||||
// Only highlight layers if the viewport is not being panned (middle mouse button is pressed)
|
||||
// TODO: Don't use `Key::Mmb` directly, instead take it as a variable from the input mappings list like in all other places
|
||||
|
||||
@@ -361,7 +361,7 @@ impl Fsm for TextToolFsmState {
|
||||
if far.x != 0. && far.y != 0. {
|
||||
let quad = Quad::from_box([DVec2::ZERO, far]);
|
||||
let transformed_quad = document.metadata().transform_to_viewport(tool_data.layer) * quad;
|
||||
overlay_context.quad(transformed_quad);
|
||||
overlay_context.quad(transformed_quad, None);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -376,7 +376,7 @@ impl Fsm for TextToolFsmState {
|
||||
let far = graphene_core::text::bounding_box(text, buzz_face, font_size, None);
|
||||
let quad = Quad::from_box([DVec2::ZERO, far]);
|
||||
let multiplied = document.metadata().transform_to_viewport(layer) * quad;
|
||||
overlay_context.quad(multiplied);
|
||||
overlay_context.quad(multiplied, None);
|
||||
}
|
||||
|
||||
self
|
||||
|
||||
Reference in New Issue
Block a user