aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rw-r--r--components/gfx/display_list/mod.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/components/gfx/display_list/mod.rs b/components/gfx/display_list/mod.rs
index ec3173cb847..af4b793c6b2 100644
--- a/components/gfx/display_list/mod.rs
+++ b/components/gfx/display_list/mod.rs
@@ -182,7 +182,14 @@ impl DisplayList {
*client_point
} else {
let point = *translated_point - stacking_context.bounds.origin;
- let inv_transform = stacking_context.transform.inverse().unwrap();
+ let inv_transform = match stacking_context.transform.inverse() {
+ Some(transform) => transform,
+ None => {
+ // If a transform function causes the current transformation matrix of an object
+ // to be non-invertible, the object and its content do not get displayed.
+ return;
+ }
+ };
let frac_point = inv_transform.transform_point(&Point2D::new(point.x.to_f32_px(),
point.y.to_f32_px()));
Point2D::new(Au::from_f32_px(frac_point.x), Au::from_f32_px(frac_point.y))