From d95af220937b455212b6aa90b26cbef125c41c16 Mon Sep 17 00:00:00 2001 From: dAxpeDDa Date: Wed, 7 Jun 2023 13:50:04 +0200 Subject: [PATCH] Fix `Window::set_inner_size()` --- CHANGELOG.md | 3 ++- src/platform_impl/web/web_sys/mod.rs | 14 ++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 605763eb03..037d5c2e92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,7 +54,8 @@ And please only add new entries to the top of this list, right below the `# Unre - On Wayland, drop `WINIT_WAYLAND_CSD_THEME` variable. - Implement `PartialOrd` and `Ord` on types in the `dpi` module. - **Breaking:** Bump MSRV from `1.60` to `1.64`. -- **Breaking:** On Web, the canvas output bitmap size is no longer adjusted. +- **Breaking:** On Web, `Window::(set_)inner_size()` will return/change the visual canvas size + instead of the internal canvas size. - On Web: fix `Window::request_redraw` not waking the event loop when called from outside the loop. - On Web: fix position of touch events to be relative to the canvas. - On Web, fix `Window:::set_fullscreen` doing nothing when called outside the event loop but during diff --git a/src/platform_impl/web/web_sys/mod.rs b/src/platform_impl/web/web_sys/mod.rs index 611fcd7844..69a6783aa6 100644 --- a/src/platform_impl/web/web_sys/mod.rs +++ b/src/platform_impl/web/web_sys/mod.rs @@ -73,17 +73,11 @@ pub fn scale_factor(window: &web_sys::Window) -> f64 { pub fn set_canvas_size(canvas: &Canvas, new_size: Size) { let scale_factor = scale_factor(canvas.window()); + let new_size = new_size.to_physical(scale_factor); - let physical_size = new_size.to_physical(scale_factor); - canvas.size().set(physical_size); - - let logical_size = new_size.to_logical::(scale_factor); - set_canvas_style_property(canvas.raw(), "width", &format!("{}px", logical_size.width)); - set_canvas_style_property( - canvas.raw(), - "height", - &format!("{}px", logical_size.height), - ); + canvas.size().set(new_size); + set_canvas_style_property(canvas.raw(), "width", &format!("{}px", new_size.width)); + set_canvas_style_property(canvas.raw(), "height", &format!("{}px", new_size.height)); } pub fn set_canvas_style_property(raw: &HtmlCanvasElement, property: &str, value: &str) {