Skip to content

Commit 86861ab

Browse files
committed
Fix export edge distance
1 parent 84fe773 commit 86861ab

File tree

12 files changed

+25
-153
lines changed

12 files changed

+25
-153
lines changed

editor/src/messages/frontend/frontend_message.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use super::utility_types::{DocumentDetails, MouseCursorIcon, OpenDocument};
22
use crate::messages::app_window::app_window_message_handler::AppWindowPlatform;
33
use crate::messages::layout::utility_types::widget_prelude::*;
44
use crate::messages::portfolio::document::node_graph::utility_types::{
5-
BoxSelection, ContextMenuInformation, FrontendClickTargets, FrontendGraphInput, FrontendGraphOutput, FrontendNode, FrontendNodeType, NodeGraphError, Transform
5+
BoxSelection, ContextMenuInformation, FrontendClickTargets, FrontendGraphInput, FrontendGraphOutput, FrontendNode, FrontendNodeType, NodeGraphError, Transform,
66
};
77
use crate::messages::portfolio::document::utility_types::nodes::{JsRawBuffer, LayerPanelEntry, RawBuffer};
88
use crate::messages::portfolio::document::utility_types::wires::{WirePath, WirePathUpdate};

editor/src/messages/portfolio/document/document_message_handler.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> for DocumentMes
473473
responses.add(NodeGraphMessage::UnloadWires);
474474
responses.add(NodeGraphMessage::SendGraph);
475475
responses.add(DocumentMessage::ZoomCanvasToFitAll);
476-
responses.add(NodeGraphMessage::SetGridAlignedEdges);
476+
responses.add(NodeGraphMessage::UpdateNodeGraphWidth);
477477
}
478478
DocumentMessage::Escape => {
479479
if self.node_graph_handler.drag_start.is_some() {
@@ -506,7 +506,7 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> for DocumentMes
506506
responses.add(NodeGraphMessage::UnloadWires);
507507
responses.add(NodeGraphMessage::SendGraph);
508508
responses.add(DocumentMessage::PTZUpdate);
509-
responses.add(NodeGraphMessage::SetGridAlignedEdges);
509+
responses.add(NodeGraphMessage::UpdateNodeGraphWidth);
510510
}
511511
DocumentMessage::FlipSelectedLayers { flip_axis } => {
512512
let scale = match flip_axis {
@@ -576,10 +576,10 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> for DocumentMes
576576
responses.add(ToolMessage::DeactivateTools);
577577
responses.add(OverlaysMessage::Draw); // Clear the overlays
578578
responses.add(NavigationMessage::CanvasTiltSet { angle_radians: 0. });
579-
responses.add(NodeGraphMessage::SetGridAlignedEdges);
580579
responses.add(NodeGraphMessage::UpdateGraphBarRight);
581580
responses.add(NodeGraphMessage::SendGraph);
582581
responses.add(NodeGraphMessage::UpdateHints);
582+
responses.add(NodeGraphMessage::UpdateEdges);
583583
} else {
584584
responses.add(ToolMessage::ActivateTool { tool_type: *current_tool });
585585
responses.add(OverlaysMessage::Draw); // Redraw overlays when graph is closed
@@ -1972,7 +1972,6 @@ impl DocumentMessageHandler {
19721972

19731973
// TODO: Remove once the footprint is used to load the imports/export distances from the edge
19741974
responses.add(NodeGraphMessage::UnloadWires);
1975-
responses.add(NodeGraphMessage::SetGridAlignedEdges);
19761975

19771976
Some(previous_network)
19781977
}

editor/src/messages/portfolio/document/navigation/navigation_message_handler.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,6 @@ impl MessageHandler<NavigationMessage, NavigationMessageContext<'_>> for Navigat
180180
NavigationMessage::CanvasPanMouseWheel { use_y_as_x } => {
181181
let delta = if use_y_as_x { (-ipp.mouse.scroll_delta.y, 0.).into() } else { -ipp.mouse.scroll_delta.as_dvec2() } * VIEWPORT_SCROLL_RATE;
182182
responses.add(NavigationMessage::CanvasPan { delta });
183-
responses.add(NodeGraphMessage::SetGridAlignedEdges);
184183
}
185184
NavigationMessage::CanvasTiltResetAndZoomTo100Percent => {
186185
let Some(ptz) = get_ptz_mut(document_ptz, network_interface, graph_view_overlay_open, breadcrumb_network_path) else {
@@ -195,7 +194,6 @@ impl MessageHandler<NavigationMessage, NavigationMessageContext<'_>> for Navigat
195194
responses.add(PortfolioMessage::UpdateDocumentWidgets);
196195
}
197196
responses.add(DocumentMessage::PTZUpdate);
198-
responses.add(NodeGraphMessage::SetGridAlignedEdges);
199197
}
200198
NavigationMessage::CanvasTiltSet { angle_radians } => {
201199
let Some(ptz) = get_ptz_mut(document_ptz, network_interface, graph_view_overlay_open, breadcrumb_network_path) else {
@@ -274,7 +272,6 @@ impl MessageHandler<NavigationMessage, NavigationMessageContext<'_>> for Navigat
274272
responses.add(PortfolioMessage::UpdateDocumentWidgets);
275273
}
276274
responses.add(DocumentMessage::PTZUpdate);
277-
responses.add(NodeGraphMessage::SetGridAlignedEdges);
278275
}
279276
NavigationMessage::CanvasFlip => {
280277
if graph_view_overlay_open {
@@ -322,7 +319,6 @@ impl MessageHandler<NavigationMessage, NavigationMessageContext<'_>> for Navigat
322319
} else {
323320
responses.add(PortfolioMessage::UpdateDocumentWidgets);
324321
}
325-
responses.add(NodeGraphMessage::SetGridAlignedEdges);
326322
// Reset the navigation operation now that it's done
327323
self.navigation_operation = NavigationOperation::None;
328324

@@ -384,7 +380,6 @@ impl MessageHandler<NavigationMessage, NavigationMessageContext<'_>> for Navigat
384380
responses.add(PortfolioMessage::UpdateDocumentWidgets);
385381
}
386382
responses.add(DocumentMessage::PTZUpdate);
387-
responses.add(NodeGraphMessage::SetGridAlignedEdges);
388383
}
389384
// Fully zooms in on the selected
390385
NavigationMessage::FitViewportToSelection => {
@@ -479,7 +474,6 @@ impl MessageHandler<NavigationMessage, NavigationMessageContext<'_>> for Navigat
479474
};
480475

481476
responses.add(NavigationMessage::CanvasZoomSet { zoom_factor: ptz.zoom() });
482-
responses.add(NodeGraphMessage::SetGridAlignedEdges);
483477
}
484478
}
485479

editor/src/messages/portfolio/document/node_graph/node_graph_message.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ pub enum NodeGraphMessage {
113113
shift: Key,
114114
},
115115
ShakeNode,
116+
UpdateNodeGraphWidth,
116117
RemoveImport {
117118
import_index: usize,
118119
},
@@ -144,7 +145,6 @@ pub enum NodeGraphMessage {
144145
SendWires,
145146
UpdateVisibleNodes,
146147
SendGraph,
147-
SetGridAlignedEdges,
148148
SetInputValue {
149149
node_id: NodeId,
150150
input_index: usize,

editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use crate::messages::tool::common_functionality::graph_modification_utils::get_c
2020
use crate::messages::tool::common_functionality::utility_functions::make_path_editable_is_allowed;
2121
use crate::messages::tool::tool_messages::tool_prelude::{Key, MouseMotion};
2222
use crate::messages::tool::utility_types::{HintData, HintGroup, HintInfo};
23-
use crate::messages::viewport::{Position, Rect};
23+
use crate::messages::viewport::Position;
2424
use glam::{DAffine2, DVec2, IVec2};
2525
use graph_craft::document::{DocumentNodeImplementation, NodeId, NodeInput};
2626
use graphene_std::math::math_ext::QuadExt;
@@ -1541,6 +1541,10 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphMessageContext<'a>> for NodeG
15411541
responses.add(NodeGraphMessage::RunDocumentGraph);
15421542
responses.add(NodeGraphMessage::SendGraph);
15431543
}
1544+
NodeGraphMessage::UpdateNodeGraphWidth => {
1545+
network_interface.set_node_graph_width(viewport.size().x(), breadcrumb_network_path);
1546+
responses.add(NodeGraphMessage::UpdateImportsExports);
1547+
}
15441548
NodeGraphMessage::RemoveImport { import_index: usize } => {
15451549
network_interface.remove_import(usize, selection_network_path);
15461550
responses.add(NodeGraphMessage::UpdateImportsExports);
@@ -1659,14 +1663,6 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphMessageContext<'a>> for NodeG
16591663
self.update_node_graph_hints(responses);
16601664
}
16611665
}
1662-
NodeGraphMessage::SetGridAlignedEdges => {
1663-
if graph_view_overlay_open {
1664-
let viewport_bounds = viewport.bounds();
1665-
network_interface.set_grid_aligned_edges(DVec2::new(viewport_bounds.x() - viewport_bounds.width(), 0.), breadcrumb_network_path);
1666-
// Send the new edges to the frontend
1667-
responses.add(NodeGraphMessage::UpdateImportsExports);
1668-
}
1669-
}
16701666
NodeGraphMessage::SetInputValue { node_id, input_index, value } => {
16711667
let input = NodeInput::value(value, false);
16721668
responses.add(NodeGraphMessage::SetInput {

editor/src/messages/portfolio/document/node_graph/utility_types.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,6 @@ pub struct FrontendClickTargets {
190190
pub icon_click_targets: Vec<String>,
191191
#[serde(rename = "allNodesBoundingBox")]
192192
pub all_nodes_bounding_box: String,
193-
#[serde(rename = "importExportsBoundingBox")]
194-
pub import_exports_bounding_box: String,
195193
#[serde(rename = "modifyImportExport")]
196194
pub modify_import_export: Vec<String>,
197195
}

editor/src/messages/portfolio/document/utility_types/network_interface.rs

Lines changed: 14 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -581,19 +581,18 @@ impl NodeNetworkInterface {
581581
let import_top_left = DVec2::new(top_left_inner_bound.x.min(bounding_box_top_left.x), top_left_inner_bound.y.min(bounding_box_top_left.y));
582582
let rounded_import_top_left = DVec2::new((import_top_left.x / 24.).round() * 24., (import_top_left.y / 24.).round() * 24.);
583583

584-
let viewport_top_right = network_metadata.persistent_metadata.navigation_metadata.node_graph_top_right;
585-
let target_viewport_top_right = DVec2::new(
586-
viewport_top_right.x - EXPORTS_TO_RIGHT_EDGE_PIXEL_GAP as f64,
587-
viewport_top_right.y + EXPORTS_TO_TOP_EDGE_PIXEL_GAP as f64,
588-
);
584+
let viewport_width = network_metadata.persistent_metadata.navigation_metadata.node_graph_width;
585+
586+
let target_viewport_top_right = DVec2::new(viewport_width - EXPORTS_TO_RIGHT_EDGE_PIXEL_GAP as f64, EXPORTS_TO_TOP_EDGE_PIXEL_GAP as f64);
589587

590588
// An offset from the right edge in viewport pixels
591589
let node_graph_pixel_offset_top_right = node_graph_to_viewport.inverse().transform_point2(target_viewport_top_right);
592590

593591
// A 5x5 grid offset from the right corner
594-
let node_graph_grid_space_offset_top_right = node_graph_to_viewport.inverse().transform_point2(viewport_top_right) + DVec2::new(-5. * GRID_SIZE as f64, 4. * GRID_SIZE as f64);
592+
let node_graph_grid_space_offset_top_right = node_graph_to_viewport.inverse().transform_point2(DVec2::new(viewport_width, 0.)) + DVec2::new(-5. * GRID_SIZE as f64, 4. * GRID_SIZE as f64);
595593

596-
// The inner bound of the export is the highest/furthest right of the two offsets
594+
// The inner bound of the export is the highest/furthest right of the two offsets.
595+
// When zoomed out this keeps it a constant grid space away from the edge, but when zoomed in it prevents the exports from getting too far in
597596
let top_right_inner_bound = DVec2::new(
598597
node_graph_pixel_offset_top_right.x.max(node_graph_grid_space_offset_top_right.x),
599598
node_graph_pixel_offset_top_right.y.min(node_graph_grid_space_offset_top_right.y),
@@ -1950,68 +1949,6 @@ impl NodeNetworkInterface {
19501949
network_metadata.transient_metadata.modify_import_export.unload();
19511950
}
19521951

1953-
pub fn rounded_network_edge_distance(&mut self, network_path: &[NodeId]) -> Option<&NetworkEdgeDistance> {
1954-
let Some(network_metadata) = self.network_metadata(network_path) else {
1955-
log::error!("Could not get nested network_metadata in rounded_network_edge_distance");
1956-
return None;
1957-
};
1958-
if !network_metadata.transient_metadata.rounded_network_edge_distance.is_loaded() {
1959-
self.load_rounded_network_edge_distance(network_path);
1960-
}
1961-
let Some(network_metadata) = self.network_metadata(network_path) else {
1962-
log::error!("Could not get nested network_metadata in rounded_network_edge_distance");
1963-
return None;
1964-
};
1965-
let TransientMetadata::Loaded(rounded_network_edge_distance) = &network_metadata.transient_metadata.rounded_network_edge_distance else {
1966-
log::error!("could not load import rounded_network_edge_distance");
1967-
return None;
1968-
};
1969-
Some(rounded_network_edge_distance)
1970-
}
1971-
1972-
fn load_rounded_network_edge_distance(&mut self, network_path: &[NodeId]) {
1973-
let Some(network_metadata) = self.network_metadata_mut(network_path) else {
1974-
log::error!("Could not get nested network in set_grid_aligned_edges");
1975-
return;
1976-
};
1977-
// When setting the edges to be grid aligned, update the pixel offset to ensure the next pan starts from the snapped import/export position
1978-
let node_graph_to_viewport = network_metadata.persistent_metadata.navigation_metadata.node_graph_to_viewport;
1979-
// TODO: Eventually replace node graph top right with the footprint when trying to get the network edge distance
1980-
let node_graph_top_right = network_metadata.persistent_metadata.navigation_metadata.node_graph_top_right;
1981-
let target_exports_distance = node_graph_to_viewport.inverse().transform_point2(DVec2::new(
1982-
node_graph_top_right.x - EXPORTS_TO_RIGHT_EDGE_PIXEL_GAP as f64,
1983-
node_graph_top_right.y + EXPORTS_TO_TOP_EDGE_PIXEL_GAP as f64,
1984-
));
1985-
1986-
let target_imports_distance = node_graph_to_viewport
1987-
.inverse()
1988-
.transform_point2(DVec2::new(IMPORTS_TO_LEFT_EDGE_PIXEL_GAP as f64, IMPORTS_TO_TOP_EDGE_PIXEL_GAP as f64));
1989-
1990-
let rounded_exports_distance = DVec2::new((target_exports_distance.x / 24. + 0.5).floor() * 24., (target_exports_distance.y / 24. + 0.5).floor() * 24.);
1991-
let rounded_imports_distance = DVec2::new((target_imports_distance.x / 24. + 0.5).floor() * 24., (target_imports_distance.y / 24. + 0.5).floor() * 24.);
1992-
1993-
let rounded_viewport_exports_distance = node_graph_to_viewport.transform_point2(rounded_exports_distance);
1994-
let rounded_viewport_imports_distance = node_graph_to_viewport.transform_point2(rounded_imports_distance);
1995-
1996-
let network_edge_distance = NetworkEdgeDistance {
1997-
exports_to_edge_distance: rounded_viewport_exports_distance,
1998-
imports_to_edge_distance: rounded_viewport_imports_distance,
1999-
};
2000-
let Some(network_metadata) = self.network_metadata_mut(network_path) else {
2001-
log::error!("Could not get current network in load_export_ports");
2002-
return;
2003-
};
2004-
network_metadata.transient_metadata.rounded_network_edge_distance = TransientMetadata::Loaded(network_edge_distance);
2005-
}
2006-
2007-
fn unload_rounded_network_edge_distance(&mut self, network_path: &[NodeId]) {
2008-
let Some(network_metadata) = self.network_metadata_mut(network_path) else {
2009-
log::error!("Could not get nested network_metadata in unload_export_ports");
2010-
return;
2011-
};
2012-
network_metadata.transient_metadata.rounded_network_edge_distance.unload();
2013-
}
2014-
20151952
fn owned_nodes(&self, node_id: &NodeId, network_path: &[NodeId]) -> Option<&HashSet<NodeId>> {
20161953
let layer_node = self.node_metadata(node_id, network_path)?;
20171954
let NodeTypePersistentMetadata::Layer(LayerPersistentMetadata { owned_nodes, .. }) = &layer_node.persistent_metadata.node_type_metadata else {
@@ -2861,33 +2798,6 @@ impl NodeNetworkInterface {
28612798
let rect = Subpath::<PointId>::new_rect(bounds[0], bounds[1]);
28622799
let all_nodes_bounding_box = rect.to_bezpath().to_svg();
28632800

2864-
let Some(rounded_network_edge_distance) = self.rounded_network_edge_distance(network_path).cloned() else {
2865-
log::error!("Could not get rounded_network_edge_distance in collect_frontend_click_targets");
2866-
return FrontendClickTargets::default();
2867-
};
2868-
let Some(network_metadata) = self.network_metadata(network_path) else {
2869-
log::error!("Could not get nested network_metadata in collect_frontend_click_targets");
2870-
return FrontendClickTargets::default();
2871-
};
2872-
let import_exports_viewport_top_left = rounded_network_edge_distance.imports_to_edge_distance;
2873-
let import_exports_viewport_bottom_right = rounded_network_edge_distance.exports_to_edge_distance;
2874-
2875-
let node_graph_top_left = network_metadata
2876-
.persistent_metadata
2877-
.navigation_metadata
2878-
.node_graph_to_viewport
2879-
.inverse()
2880-
.transform_point2(import_exports_viewport_top_left);
2881-
let node_graph_bottom_right = network_metadata
2882-
.persistent_metadata
2883-
.navigation_metadata
2884-
.node_graph_to_viewport
2885-
.inverse()
2886-
.transform_point2(import_exports_viewport_bottom_right);
2887-
2888-
let import_exports_target = Subpath::<PointId>::new_rect(node_graph_top_left, node_graph_bottom_right);
2889-
let import_exports_bounding_box = import_exports_target.to_bezpath().to_svg();
2890-
28912801
let mut modify_import_export = Vec::new();
28922802
if let Some(modify_import_export_click_targets) = self.modify_import_export(network_path) {
28932803
for click_target in modify_import_export_click_targets
@@ -2906,7 +2816,6 @@ impl NodeNetworkInterface {
29062816
connector_click_targets,
29072817
icon_click_targets,
29082818
all_nodes_bounding_box,
2909-
import_exports_bounding_box,
29102819
modify_import_export,
29112820
}
29122821
}
@@ -3360,13 +3269,12 @@ impl NodeNetworkInterface {
33603269
}
33613270

33623271
// This should be run whenever the pan ends, a zoom occurs, or the network is opened
3363-
pub fn set_grid_aligned_edges(&mut self, node_graph_top_right: DVec2, network_path: &[NodeId]) {
3272+
pub fn set_node_graph_width(&mut self, node_graph_width: f64, network_path: &[NodeId]) {
33643273
let Some(network_metadata) = self.network_metadata_mut(network_path) else {
3365-
log::error!("Could not get nested network_metadata in set_grid_aligned_edges");
3274+
log::error!("Could not get nested network in set_transform");
33663275
return;
33673276
};
3368-
network_metadata.persistent_metadata.navigation_metadata.node_graph_top_right = node_graph_top_right;
3369-
self.unload_rounded_network_edge_distance(network_path);
3277+
network_metadata.persistent_metadata.navigation_metadata.node_graph_width = node_graph_width;
33703278
self.unload_import_export_ports(network_path);
33713279
self.unload_modify_import_export(network_path);
33723280
}
@@ -6159,8 +6067,6 @@ pub struct NodeNetworkTransientMetadata {
61596067
pub import_export_ports: TransientMetadata<Ports>,
61606068
/// Click targets for adding, removing, and moving import/export ports
61616069
pub modify_import_export: TransientMetadata<ModifyImportExportClickTarget>,
6162-
// Distance to the edges of the network, where the import/export ports are displayed. Rounded to nearest grid space when the panning ends.
6163-
pub rounded_network_edge_distance: TransientMetadata<NetworkEdgeDistance>,
61646070

61656071
// Wires from the exports
61666072
pub wires: Vec<TransientMetadata<WirePathUpdate>>,
@@ -6559,29 +6465,18 @@ pub enum LayerClickTargetTypes {
65596465
// Preview,
65606466
}
65616467

6562-
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
6468+
#[derive(Debug, Clone, Default, PartialEq, serde::Serialize, serde::Deserialize)]
65636469
pub struct NavigationMetadata {
65646470
/// The current pan, and zoom state of the viewport's view of the node graph.
65656471
/// Ensure `DocumentMessage::UpdateDocumentTransform` is called when the pan, zoom, or transform changes.
65666472
pub node_graph_ptz: PTZ,
6567-
// TODO: Remove and replace with calculate_offset_transform from the node_graph_ptz. This will be difficult since it requires both the navigation message handler and the IPP
6473+
// TODO: Eventually remove once te click targets are extracted from the native render
65686474
/// Transform from node graph space to viewport space.
65696475
pub node_graph_to_viewport: DAffine2,
6570-
/// Top right of the node graph in viewport space
6476+
// TODO: Eventually remove once the import/export positions are extracted from the native render
6477+
/// The width of the node graph in viewport space
65716478
#[serde(default)]
6572-
pub node_graph_top_right: DVec2,
6573-
}
6574-
6575-
impl Default for NavigationMetadata {
6576-
fn default() -> NavigationMetadata {
6577-
// Default PTZ and transform
6578-
NavigationMetadata {
6579-
node_graph_ptz: PTZ::default(),
6580-
node_graph_to_viewport: DAffine2::IDENTITY,
6581-
// TODO: Eventually replace with footprint
6582-
node_graph_top_right: DVec2::ZERO,
6583-
}
6584-
}
6479+
pub node_graph_width: f64,
65856480
}
65866481

65876482
// PartialEq required by message handlers

editor/src/messages/viewport/viewport_message_handler.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ impl MessageHandler<ViewportMessage, ()> for ViewportMessageHandler {
3333
offset: Point { x, y },
3434
size: Point { x: width, y: height },
3535
};
36+
responses.add(NodeGraphMessage::UpdateNodeGraphWidth);
3637
}
3738
ViewportMessage::RepropagateUpdate => {}
3839
}
@@ -46,7 +47,6 @@ impl MessageHandler<ViewportMessage, ()> for ViewportMessageHandler {
4647
});
4748

4849
responses.add(NavigationMessage::CanvasPan { delta: DVec2::ZERO });
49-
responses.add(NodeGraphMessage::SetGridAlignedEdges);
5050

5151
responses.add(DeferMessage::AfterGraphRun {
5252
messages: vec![

frontend/src/components/panels/Document.svelte

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,6 @@
592592
thumbPosition={scrollbarPos.x}
593593
on:trackShift={({ detail }) => editor.handle.panCanvasByFraction(detail, 0)}
594594
on:thumbPosition={({ detail }) => panCanvasX(detail)}
595-
on:thumbDragEnd={() => editor.handle.setGridAlignedEdges()}
596595
on:thumbDragStart={() => editor.handle.panCanvasAbortPrepare(true)}
597596
on:thumbDragAbort={() => editor.handle.panCanvasAbort(true)}
598597
/>

frontend/src/components/views/Graph.svelte

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,6 @@
278278
<path class="visibility" d={pathString} />
279279
{/each}
280280
<path class="all-nodes-bounding-box" d={$nodeGraph.clickTargets.allNodesBoundingBox} />
281-
<path class="all-nodes-bounding-box" d={$nodeGraph.clickTargets.importExportsBoundingBox} />
282281
{#each $nodeGraph.clickTargets.modifyImportExport as pathString}
283282
<path class="modify-import-export" d={pathString} />
284283
{/each}

0 commit comments

Comments
 (0)