summaryrefslogtreecommitdiffstats
path: root/graphics/src/widget/canvas/path.rs
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/src/widget/canvas/path.rs')
-rw-r--r--graphics/src/widget/canvas/path.rs17
1 files changed, 8 insertions, 9 deletions
diff --git a/graphics/src/widget/canvas/path.rs b/graphics/src/widget/canvas/path.rs
index bc258b67..cb7e5035 100644
--- a/graphics/src/widget/canvas/path.rs
+++ b/graphics/src/widget/canvas/path.rs
@@ -71,15 +71,11 @@ impl Path {
}
}
-pub(super) fn dashed(path: &Path, line_dash: LineDash) -> Path {
+pub(super) fn dashed(path: &Path, line_dash: LineDash<'_>) -> Path {
Path::new(|builder| {
- let segments_odd = line_dash.segments.len() % 2 == 1;
-
- let segments = segments_odd
- .then(|| {
- [&line_dash.segments[..], &line_dash.segments[..]].concat()
- })
- .unwrap_or(line_dash.segments);
+ let segments_odd = (line_dash.segments.len() % 2 == 1).then(|| {
+ [&line_dash.segments[..], &line_dash.segments[..]].concat()
+ });
let mut draw_line = false;
@@ -106,7 +102,10 @@ pub(super) fn dashed(path: &Path, line_dash: LineDash) -> Path {
true
},
index: line_dash.offset,
- intervals: &segments,
+ intervals: segments_odd
+ .as_ref()
+ .map(Vec::as_slice)
+ .unwrap_or(line_dash.segments),
},
);
})