diff --git a/servo/components/gfx/paint_context.rs b/servo/components/gfx/paint_context.rs index 6fbdece15ece..9f6df9287f0e 100644 --- a/servo/components/gfx/paint_context.rs +++ b/servo/components/gfx/paint_context.rs @@ -1171,16 +1171,10 @@ pub trait ToAzureRect { impl ToAzureRect for Rect { fn to_nearest_azure_rect(&self) -> Rect { - let top_left = self.origin.to_nearest_azure_point(); - let bottom_right = self.bottom_right().to_nearest_azure_point(); - Rect::new(top_left, - Size2D::new((bottom_right.x - top_left.x) as AzFloat, - (bottom_right.y - top_left.y) as AzFloat)) - + Rect::new(self.origin.to_nearest_azure_point(), self.size.to_nearest_azure_size()) } fn to_azure_rect(&self) -> Rect { - Rect::new(self.origin.to_azure_point(), Size2D::new(self.size.width.to_f32_px(), - self.size.height.to_f32_px())) + Rect::new(self.origin.to_azure_point(), self.size.to_azure_size()) } } @@ -1382,11 +1376,12 @@ impl DrawTargetExtensions for DrawTarget { } fn create_rectangular_path(&self, rect: &Rect) -> Path { + let rect = rect.to_nearest_azure_rect(); let path_builder = self.create_path_builder(); - path_builder.move_to(rect.origin.to_nearest_azure_point()); - path_builder.line_to(Point2D::new(rect.max_x(), rect.origin.y).to_nearest_azure_point()); - path_builder.line_to(Point2D::new(rect.max_x(), rect.max_y()).to_nearest_azure_point()); - path_builder.line_to(Point2D::new(rect.origin.x, rect.max_y()).to_nearest_azure_point()); + path_builder.move_to(rect.origin); + path_builder.line_to(Point2D::new(rect.max_x(), rect.origin.y)); + path_builder.line_to(Point2D::new(rect.max_x(), rect.max_y())); + path_builder.line_to(Point2D::new(rect.origin.x, rect.max_y())); path_builder.finish() } }