Skip to content

Commit c8fe3aa

Browse files
authored
Merge branch 'master' into path_editing_clutter
2 parents 3d3cea2 + 0ec91bf commit c8fe3aa

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+2016
-1045
lines changed

Cargo.lock

Lines changed: 759 additions & 390 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,14 @@ env_logger = "0.11"
4848
log = "0.4"
4949
bitflags = { version = "2.4", features = ["serde"] }
5050
ctor = "0.2"
51-
convert_case = "0.6"
51+
convert_case = "0.7"
5252
derivative = "2.2"
5353
tempfile = "3.6"
5454
thiserror = "2"
5555
anyhow = "1.0"
5656
proc-macro2 = "1"
5757
quote = "1.0"
58-
axum = "0.7"
58+
axum = "0.8"
5959
chrono = "0.4"
6060
ron = "0.8"
6161
fastnoise-lite = "1.1"
@@ -73,18 +73,18 @@ tokio = { version = "1.29", features = ["fs", "io-std"] }
7373
vello = { git = "https://github.com/linebender/vello.git", rev = "3275ec8" } # TODO switch back to stable when a release is made
7474
resvg = "0.44"
7575
usvg = "0.44"
76-
rand = { version = "0.8", default-features = false }
77-
rand_chacha = "0.3"
76+
rand = { version = "0.9", default-features = false }
77+
rand_chacha = "0.9"
7878
glam = { version = "0.29", default-features = false, features = ["serde"] }
7979
base64 = "0.22"
8080
image = { version = "0.25", default-features = false, features = ["png"] }
8181
rustybuzz = "0.20"
8282
spirv = "0.3"
83-
fern = { version = "0.6", features = ["colored"] }
83+
fern = { version = "0.7", features = ["colored"] }
8484
num_enum = "0.7"
8585
num-derive = "0.4"
8686
num-traits = { version = "0.2", default-features = false, features = ["i128"] }
87-
specta = { git = "https://github.com/0hypercube/specta.git", features = [
87+
specta = { git = "https://github.com/specta-rs/specta.git", features = [
8888
"glam",
8989
"derive",
9090
# "typescript",

deny.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ db-urls = ["https://github.com/rustsec/advisory-db"]
4343
# A list of advisory IDs to ignore. Note that ignored advisories will still
4444
# output a note when they are encountered.
4545
ignore = [
46-
"RUSTSEC-2024-0370", # I don't care about unmaintained proc-macro-error
47-
"RUSTSEC-2024-0388", # I don't care about unmaintained derivative
46+
"RUSTSEC-2024-0370", # Unmaintained but still fully functional crate `proc-macro-error`
47+
"RUSTSEC-2024-0388", # Unmaintained but still fully functional crate `derivative`
4848
]
4949
# Threshold for security vulnerabilities, any vulnerability with a CVSS score
5050
# lower than the range specified will be ignored. Note that ignored advisories
@@ -78,6 +78,7 @@ allow = [
7878
"OpenSSL",
7979
"Unicode-3.0",
8080
"Zlib",
81+
"NCSA",
8182
]
8283
# The confidence threshold for detecting a license from license text.
8384
# The higher the value, the more closely the license text must be to the
@@ -183,7 +184,7 @@ allow-git = []
183184

184185
[sources.allow-org]
185186
# 1 or more github.com organizations to allow git sources for
186-
github = ["linebender", "Rust-GPU", "0hypercube"]
187+
github = ["linebender", "Rust-GPU", "specta-rs"]
187188
# 1 or more gitlab.com organizations to allow git sources for
188189
#gitlab = [""]
189190
# 1 or more bitbucket.org organizations to allow git sources for

editor/src/consts.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ pub const MAX_LAYER_SNAP_POINTS: usize = 100;
4141
pub const DRAG_THRESHOLD: f64 = 1.;
4242

4343
// TRANSFORMING LAYER
44-
pub const ROTATE_SNAP_ANGLE: f64 = 15.;
45-
pub const SCALE_SNAP_INTERVAL: f64 = 0.1;
44+
pub const ROTATE_INCREMENT: f64 = 15.;
45+
pub const SCALE_INCREMENT: f64 = 0.1;
4646
pub const SLOWING_DIVISOR: f64 = 10.;
4747
pub const NUDGE_AMOUNT: f64 = 1.;
4848
pub const BIG_NUDGE_AMOUNT: f64 = 10.;

editor/src/messages/input_mapper/input_mapper_message_handler.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,9 @@ impl InputMapperMessageHandler {
9292
.collect::<Vec<_>>();
9393

9494
// Append the key button for the entry
95+
use InputMapperMessage as IMM;
9596
match entry.input {
96-
InputMapperMessage::KeyDown(key) => keys.push(key),
97-
InputMapperMessage::KeyUp(key) => keys.push(key),
98-
InputMapperMessage::KeyDownNoRepeat(key) => keys.push(key),
99-
InputMapperMessage::KeyUpNoRepeat(key) => keys.push(key),
97+
IMM::KeyDown(key) | IMM::KeyUp(key) | IMM::KeyDownNoRepeat(key) | IMM::KeyUpNoRepeat(key) => keys.push(key),
10098
_ => (),
10199
}
102100

editor/src/messages/input_mapper/input_mappings.rs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ pub fn input_mappings() -> Mapping {
3737
// ===============
3838
//
3939
// NavigationMessage
40-
entry!(PointerMove; refresh_keys=[Control], action_dispatch=NavigationMessage::PointerMove { snap: Control }),
40+
entry!(PointerMove; refresh_keys=[Shift], action_dispatch=NavigationMessage::PointerMove { snap: Shift }),
4141
entry!(KeyUp(MouseLeft); action_dispatch=NavigationMessage::EndCanvasPTZ { abort_transform: false }),
4242
entry!(KeyUp(MouseMiddle); action_dispatch=NavigationMessage::EndCanvasPTZ { abort_transform: false }),
4343
entry!(KeyUp(MouseRight); action_dispatch=NavigationMessage::EndCanvasPTZ { abort_transform: false }),
@@ -74,7 +74,6 @@ pub fn input_mappings() -> Mapping {
7474
entry!(KeyDown(KeyH); modifiers=[Accel], action_dispatch=NodeGraphMessage::ToggleSelectedVisibility),
7575
entry!(KeyDown(KeyL); modifiers=[Accel], action_dispatch=NodeGraphMessage::ToggleSelectedLocked),
7676
entry!(KeyDown(KeyL); modifiers=[Alt], action_dispatch=NodeGraphMessage::ToggleSelectedAsLayersOrNodes),
77-
entry!(KeyDown(KeyC); modifiers=[Shift], action_dispatch=NodeGraphMessage::PrintSelectedNodeCoordinates),
7877
entry!(KeyDown(KeyC); modifiers=[Alt], action_dispatch=NodeGraphMessage::SendClickTargets),
7978
entry!(KeyDown(KeyM); modifiers=[Accel], action_dispatch=NodeGraphMessage::MergeSelectedNodes),
8079
entry!(KeyUp(KeyC); action_dispatch=NodeGraphMessage::EndSendClickTargets),
@@ -97,8 +96,8 @@ pub fn input_mappings() -> Mapping {
9796
entry!(PointerMove; refresh_keys=[Control, Shift], action_dispatch=TransformLayerMessage::PointerMove { slow_key: Shift, increments_key: Control }),
9897
//
9998
// SelectToolMessage
100-
entry!(PointerMove; refresh_keys=[Control, Alt, Shift], action_dispatch=SelectToolMessage::PointerMove(SelectToolPointerKeys { axis_align: Shift, snap_angle: Control, center: Alt, duplicate: Alt })),
101-
entry!(KeyDown(MouseLeft); action_dispatch=SelectToolMessage::DragStart { extend_selection: Shift, remove_from_selection: Alt, select_deepest: Accel, lasso_select: Control }),
99+
entry!(PointerMove; refresh_keys=[Control, Alt, Shift], action_dispatch=SelectToolMessage::PointerMove(SelectToolPointerKeys { axis_align: Shift, snap_angle: Shift, center: Alt, duplicate: Alt })),
100+
entry!(KeyDown(MouseLeft); action_dispatch=SelectToolMessage::DragStart { extend_selection: Shift, remove_from_selection: Alt, select_deepest: Accel, lasso_select: Control, skew: Control }),
102101
entry!(KeyUp(MouseLeft); action_dispatch=SelectToolMessage::DragStop { remove_from_selection: Alt }),
103102
entry!(KeyDown(Enter); action_dispatch=SelectToolMessage::Enter),
104103
entry!(DoubleClick(MouseButton::Left); action_dispatch=SelectToolMessage::EditLayer),
@@ -212,7 +211,7 @@ pub fn input_mappings() -> Mapping {
212211
entry!(KeyDown(Backspace); modifiers=[Accel], action_dispatch=PathToolMessage::DeleteAndBreakPath),
213212
entry!(KeyDown(Delete); modifiers=[Shift], action_dispatch=PathToolMessage::BreakPath),
214213
entry!(KeyDown(Backspace); modifiers=[Shift], action_dispatch=PathToolMessage::BreakPath),
215-
entry!(KeyDown(Tab); action_dispatch=PathToolMessage::SwapSelectedHandles),
214+
entry!(KeyDownNoRepeat(Tab); action_dispatch=PathToolMessage::SwapSelectedHandles),
216215
entry!(KeyDown(MouseLeft); action_dispatch=PathToolMessage::MouseDown { direct_insert_without_sliding: Control, extend_selection: Shift, lasso_select: Control }),
217216
entry!(KeyDown(MouseRight); action_dispatch=PathToolMessage::RightClick),
218217
entry!(KeyDown(Escape); action_dispatch=PathToolMessage::Escape),
@@ -254,7 +253,7 @@ pub fn input_mappings() -> Mapping {
254253
entry!(KeyDown(KeyJ); modifiers=[Accel], action_dispatch=ToolMessage::Path(PathToolMessage::ClosePath)),
255254
//
256255
// PenToolMessage
257-
entry!(PointerMove; refresh_keys=[Control, Alt, Shift], action_dispatch=PenToolMessage::PointerMove { snap_angle: Shift, break_handle: Alt, lock_angle: Control}),
256+
entry!(PointerMove; refresh_keys=[Control, Alt, Shift, KeyC], action_dispatch=PenToolMessage::PointerMove { snap_angle: Shift, break_handle: Alt, lock_angle: Control, colinear: KeyC }),
258257
entry!(KeyDown(MouseLeft); action_dispatch=PenToolMessage::DragStart { append_to_selected: Shift }),
259258
entry!(KeyUp(MouseLeft); action_dispatch=PenToolMessage::DragStop),
260259
entry!(KeyDown(MouseRight); action_dispatch=PenToolMessage::Confirm),
@@ -321,7 +320,6 @@ pub fn input_mappings() -> Mapping {
321320
entry!(KeyUp(Escape); action_dispatch=DocumentMessage::Escape),
322321
entry!(KeyDown(Delete); action_dispatch=DocumentMessage::DeleteSelectedLayers),
323322
entry!(KeyDown(Backspace); action_dispatch=DocumentMessage::DeleteSelectedLayers),
324-
entry!(KeyDown(KeyP); modifiers=[Alt], action_dispatch=DocumentMessage::DebugPrintDocument),
325323
entry!(KeyDown(KeyO); modifiers=[Alt], action_dispatch=DocumentMessage::ToggleOverlaysVisibility),
326324
entry!(KeyDown(KeyS); modifiers=[Alt], action_dispatch=DocumentMessage::ToggleSnapping),
327325
entry!(KeyDown(KeyH); modifiers=[Accel], action_dispatch=DocumentMessage::ToggleSelectedVisibility),
@@ -391,8 +389,9 @@ pub fn input_mappings() -> Mapping {
391389
//
392390
// NavigationMessage
393391
entry!(KeyDown(MouseMiddle); modifiers=[Alt], action_dispatch=NavigationMessage::BeginCanvasTilt { was_dispatched_from_menu: false }),
394-
entry!(KeyDown(MouseMiddle); modifiers=[Shift], action_dispatch=NavigationMessage::BeginCanvasZoom),
395-
entry!(KeyDown(MouseLeft); modifiers=[Shift, Space], action_dispatch=NavigationMessage::BeginCanvasZoom),
392+
entry!(KeyDown(MouseLeft); modifiers=[Alt, Space], action_dispatch=NavigationMessage::BeginCanvasTilt { was_dispatched_from_menu: false }),
393+
entry!(KeyDown(MouseMiddle); modifiers=[Control], action_dispatch=NavigationMessage::BeginCanvasZoom),
394+
entry!(KeyDown(MouseLeft); modifiers=[Control, Space], action_dispatch=NavigationMessage::BeginCanvasZoom),
396395
entry!(KeyDown(MouseMiddle); action_dispatch=NavigationMessage::BeginCanvasPan),
397396
entry!(KeyDown(MouseLeft); modifiers=[Space], action_dispatch=NavigationMessage::BeginCanvasPan),
398397
entry!(KeyDown(NumpadAdd); modifiers=[Accel], action_dispatch=NavigationMessage::CanvasZoomIncrease { center_on_mouse: false }),
@@ -427,23 +426,26 @@ pub fn input_mappings() -> Mapping {
427426
entry!(KeyDown(Comma); modifiers=[Accel], action_dispatch=DialogMessage::RequestPreferencesDialog),
428427
//
429428
// DebugMessage
430-
entry!(KeyDown(KeyT); modifiers=[Alt], action_dispatch=DebugMessage::ToggleTraceLogs),
431429
entry!(KeyDown(Digit0); modifiers=[Alt], action_dispatch=DebugMessage::MessageOff),
432430
entry!(KeyDown(Digit1); modifiers=[Alt], action_dispatch=DebugMessage::MessageNames),
433431
entry!(KeyDown(Digit2); modifiers=[Alt], action_dispatch=DebugMessage::MessageContents),
434432
];
435433
let (mut key_up, mut key_down, mut key_up_no_repeat, mut key_down_no_repeat, mut double_click, mut wheel_scroll, mut pointer_move) = mappings;
436434

437-
let sort = |list: &mut KeyMappingEntries| list.0.sort_by(|u, v| v.modifiers.ones().cmp(&u.modifiers.ones()));
435+
let sort = |list: &mut KeyMappingEntries| list.0.sort_by(|a, b| b.modifiers.count_ones().cmp(&a.modifiers.count_ones()));
436+
// Sort the sublists of `key_up`, `key_down`, `key_up_no_repeat`, and `key_down_no_repeat`
438437
for list in [&mut key_up, &mut key_down, &mut key_up_no_repeat, &mut key_down_no_repeat] {
439438
for sublist in list {
440439
sort(sublist);
441440
}
442441
}
442+
// Sort the sublists of `double_click`
443443
for sublist in &mut double_click {
444444
sort(sublist)
445445
}
446+
// Sort `wheel_scroll`
446447
sort(&mut wheel_scroll);
448+
// Sort `pointer_move`
447449
sort(&mut pointer_move);
448450

449451
Mapping {

editor/src/messages/input_mapper/utility_types/input_keyboard.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ impl<const LENGTH: usize> BitVector<LENGTH> {
434434
result == 0
435435
}
436436

437-
pub fn ones(&self) -> u32 {
437+
pub fn count_ones(&self) -> u32 {
438438
let mut result = 0;
439439

440440
for storage in self.0.iter() {

editor/src/messages/input_mapper/utility_types/misc.rs

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use super::input_keyboard::{all_required_modifiers_pressed, KeysGroup, LayoutKeysGroup};
1+
use super::input_keyboard::{all_required_modifiers_pressed, Key, KeysGroup, LayoutKeysGroup};
22
use crate::messages::input_mapper::key_mapping::MappingVariant;
33
use crate::messages::input_mapper::utility_types::input_keyboard::{KeyStates, NUMBER_OF_KEYS};
44
use crate::messages::input_mapper::utility_types::input_mouse::NUMBER_OF_MOUSE_BUTTONS;
@@ -134,7 +134,29 @@ impl ActionKeys {
134134
pub fn to_keys(&mut self, action_input_mapping: &impl Fn(&MessageDiscriminant) -> Vec<KeysGroup>) -> String {
135135
match self {
136136
Self::Action(action) => {
137-
if let Some(keys) = action_input_mapping(action).get_mut(0) {
137+
// Take the shortest sequence of keys
138+
let mut key_sequences = action_input_mapping(action);
139+
key_sequences.sort_by_key(|keys| keys.0.len());
140+
let mut secondary_key_sequence = key_sequences.get(1).cloned();
141+
let mut key_sequence = key_sequences.get_mut(0);
142+
143+
// TODO: Replace this exception with a per-action choice of canonical hotkey
144+
if let Some(key_sequence) = &mut key_sequence {
145+
if key_sequence.0.as_slice() == [Key::MouseBack] {
146+
if let Some(replacement) = &mut secondary_key_sequence {
147+
std::mem::swap(*key_sequence, replacement);
148+
}
149+
}
150+
}
151+
if let Some(key_sequence) = &mut key_sequence {
152+
if key_sequence.0.as_slice() == [Key::MouseForward] {
153+
if let Some(replacement) = &mut secondary_key_sequence {
154+
std::mem::swap(*key_sequence, replacement);
155+
}
156+
}
157+
}
158+
159+
if let Some(keys) = key_sequence {
138160
let mut taken_keys = KeysGroup::default();
139161
std::mem::swap(keys, &mut taken_keys);
140162
let description = taken_keys.to_string();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1235,7 +1235,7 @@ impl MessageHandler<DocumentMessage, DocumentMessageData<'_>> for DocumentMessag
12351235
// Ensure selection box is kept in sync with the pointer when the PTZ changes
12361236
responses.add(SelectToolMessage::PointerMove(SelectToolPointerKeys {
12371237
axis_align: Key::Shift,
1238-
snap_angle: Key::Control,
1238+
snap_angle: Key::Shift,
12391239
center: Key::Alt,
12401240
duplicate: Key::Alt,
12411241
}));

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

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::consts::{
33
VIEWPORT_ZOOM_TO_FIT_PADDING_SCALE_FACTOR, VIEWPORT_ZOOM_WHEEL_RATE,
44
};
55
use crate::messages::frontend::utility_types::MouseCursorIcon;
6-
use crate::messages::input_mapper::utility_types::input_keyboard::{Key, KeysGroup, MouseMotion};
6+
use crate::messages::input_mapper::utility_types::input_keyboard::{Key, MouseMotion};
77
use crate::messages::input_mapper::utility_types::input_mouse::ViewportPosition;
88
use crate::messages::portfolio::document::navigation::utility_types::NavigationOperation;
99
use crate::messages::portfolio::document::utility_types::misc::PTZ;
@@ -95,14 +95,7 @@ impl MessageHandler<NavigationMessage, NavigationMessageData<'_>> for Navigation
9595
responses.add(FrontendMessage::UpdateInputHints {
9696
hint_data: HintData(vec![
9797
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
98-
HintGroup(vec![HintInfo {
99-
key_groups: vec![KeysGroup(vec![Key::Control]).into()],
100-
key_groups_mac: None,
101-
mouse: None,
102-
label: "Snap 15°".into(),
103-
plus: false,
104-
slash: false,
105-
}]),
98+
HintGroup(vec![HintInfo::keys([Key::Shift], "15° Increments")]),
10699
]),
107100
});
108101

@@ -125,14 +118,7 @@ impl MessageHandler<NavigationMessage, NavigationMessageData<'_>> for Navigation
125118
responses.add(FrontendMessage::UpdateInputHints {
126119
hint_data: HintData(vec![
127120
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
128-
HintGroup(vec![HintInfo {
129-
key_groups: vec![KeysGroup(vec![Key::Control]).into()],
130-
key_groups_mac: None,
131-
mouse: None,
132-
label: "Increments".into(),
133-
plus: false,
134-
slash: false,
135-
}]),
121+
HintGroup(vec![HintInfo::keys([Key::Shift], "Increments")]),
136122
]),
137123
});
138124

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ pub enum NodeGraphMessage {
9696
PointerOutsideViewport {
9797
shift: Key,
9898
},
99-
PrintSelectedNodeCoordinates,
10099
RemoveImport {
101100
import_index: usize,
102101
},

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

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1229,44 +1229,6 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphHandlerData<'a>> for NodeGrap
12291229
self.auto_panning.stop(&messages, responses);
12301230
}
12311231
}
1232-
NodeGraphMessage::PrintSelectedNodeCoordinates => {
1233-
// TODO: This will also have to print all metadata
1234-
// for (_, node_to_print) in network
1235-
// .nodes
1236-
// .iter()
1237-
// .filter(|node_id| selected_nodes.selected_nodes().any(|selected_id| selected_id == node_id.0))
1238-
// {
1239-
// if let DocumentNodeImplementation::Network(network) = &node_to_print.implementation {
1240-
// let mut output = "\r\n\r\n".to_string();
1241-
// output += &node_to_print.name;
1242-
// output += ":\r\n\r\n";
1243-
// let mut nodes = network.nodes.iter().collect::<Vec<_>>();
1244-
// nodes.sort_by_key(|(a, _)| a.0);
1245-
// output += &nodes
1246-
// .iter()
1247-
// .map(|(_, node)| {
1248-
// format!(
1249-
// "metadata: DocumentNodeMetadata {{ position: glam::IVec2::new({}, {}) }}, // {}",
1250-
// node.metadata().position.x, node.metadata().position.y, node.name
1251-
// )
1252-
// })
1253-
// .collect::<Vec<_>>()
1254-
// .join("\r\n");
1255-
// output += "\r\n";
1256-
// output += &format!(
1257-
// "imports_metadata: (NodeId::new(), ({}, {}).into()),\r\n",
1258-
// network.imports_metadata.1.x, network.imports_metadata.1.y
1259-
// );
1260-
// output += &format!(
1261-
// "exports_metadata: (NodeId::new(), ({}, {}).into()),",
1262-
// network.exports_metadata.1.x, network.exports_metadata.1.y
1263-
// );
1264-
// output += "\r\n\r\n";
1265-
// // KEEP THIS `debug!()` - Someday we can remove this once this development utility is no longer needed
1266-
// log::debug!("{output}");
1267-
// }
1268-
// }
1269-
}
12701232
NodeGraphMessage::RemoveImport { import_index: usize } => {
12711233
network_interface.remove_import(usize, selection_network_path);
12721234
responses.add(NodeGraphMessage::SendGraph);
@@ -1738,7 +1700,6 @@ impl NodeGraphMessageHandler {
17381700
ToggleSelectedAsLayersOrNodes,
17391701
ToggleSelectedLocked,
17401702
ToggleSelectedVisibility,
1741-
PrintSelectedNodeCoordinates,
17421703
ShiftSelectedNodes,
17431704
));
17441705
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ impl OverlayContext {
4747
}
4848

4949
pub fn polygon(&mut self, polygon: &[DVec2], color_fill: Option<&str>) {
50-
self.dashed_polygon(&polygon, color_fill, None, None, None);
50+
self.dashed_polygon(polygon, color_fill, None, None, None);
5151
}
5252

5353
pub fn dashed_polygon(&mut self, polygon: &[DVec2], color_fill: Option<&str>, dash_width: Option<f64>, dash_gap_width: Option<f64>, dash_offset: Option<f64>) {

0 commit comments

Comments
 (0)