diff --git a/src/drawing/backend_impl/canvas.rs b/src/drawing/backend_impl/canvas.rs index f57639fc..97ec5df1 100644 --- a/src/drawing/backend_impl/canvas.rs +++ b/src/drawing/backend_impl/canvas.rs @@ -74,8 +74,11 @@ impl DrawingBackend for CanvasBackend { fn get_size(&self) -> (u32, u32) { // Getting just canvas.width gives poor results on HighDPI screens. - let rect = self.canvas.get_bounding_client_rect(); - (rect.width() as u32, rect.height() as u32) + let window = window().unwrap(); + let mut dpr = window.device_pixel_ratio(); + dpr = if dpr == 0.0 { 1.0 } else { dpr }; + ((self.canvas.width() as f64 / dpr) as u32, + (self.canvas.height() as f64 / dpr) as u32) } fn ensure_prepared(&mut self) -> Result<(), DrawingErrorKind> {