aboutsummaryrefslogtreecommitdiffstats
path: root/components/canvas
diff options
context:
space:
mode:
authorpylbrecht <palbrecht@mailbox.org>2019-11-16 19:02:49 +0100
committerpylbrecht <palbrecht@mailbox.org>2019-12-17 19:51:59 +0100
commitd87e5d831ba2032c65173f5a7a92316d539a36b0 (patch)
tree6fe000ddae433027766396c93b0f805a9e1d8600 /components/canvas
parent9f58ae4b07753299a63f2ff4830a99082f1cd89e (diff)
downloadservo-d87e5d831ba2032c65173f5a7a92316d539a36b0.tar.gz
servo-d87e5d831ba2032c65173f5a7a92316d539a36b0.zip
Add check to handle zerosize linear gradients
Diffstat (limited to 'components/canvas')
-rw-r--r--components/canvas/raqote_backend.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/components/canvas/raqote_backend.rs b/components/canvas/raqote_backend.rs
index 5d3f2e74cb1..c958695acf1 100644
--- a/components/canvas/raqote_backend.rs
+++ b/components/canvas/raqote_backend.rs
@@ -660,9 +660,14 @@ impl<'a> ToRaqoteSource<'a> for FillOrStrokeStyle {
))),
LinearGradient(style) => {
let stops = style.stops.into_iter().map(|s| s.to_raqote()).collect();
- let gradient = raqote::Gradient { stops };
+ let mut gradient = raqote::Gradient { stops };
let start = Point2D::new(style.x0 as f32, style.y0 as f32);
let end = Point2D::new(style.x1 as f32, style.y1 as f32);
+ if start == end {
+ // TODO
+ // hack to make Pattern::is_zero_size_gradient() return true
+ gradient.stops.clear();
+ }
Some(raqote::Source::new_linear_gradient(
gradient,
start,