Fix Window::set_inner_size()

This commit is contained in:
dAxpeDDa 2023-06-07 13:50:04 +02:00 committed by daxpedda
parent 29d3729ac8
commit e220a75556
2 changed files with 6 additions and 11 deletions

View file

@ -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. - On Wayland, drop `WINIT_WAYLAND_CSD_THEME` variable.
- Implement `PartialOrd` and `Ord` on types in the `dpi` module. - Implement `PartialOrd` and `Ord` on types in the `dpi` module.
- **Breaking:** Bump MSRV from `1.60` to `1.64`. - **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 `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 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 - On Web, fix `Window:::set_fullscreen` doing nothing when called outside the event loop but during

View file

@ -73,17 +73,11 @@ pub fn scale_factor(window: &web_sys::Window) -> f64 {
pub fn set_canvas_size(canvas: &Canvas, new_size: Size) { pub fn set_canvas_size(canvas: &Canvas, new_size: Size) {
let scale_factor = scale_factor(canvas.window()); 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(new_size);
canvas.size().set(physical_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));
let logical_size = new_size.to_logical::<f64>(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),
);
} }
pub fn set_canvas_style_property(raw: &HtmlCanvasElement, property: &str, value: &str) { pub fn set_canvas_style_property(raw: &HtmlCanvasElement, property: &str, value: &str) {