Use correct canvas size for scale factor change #2849
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Until now the internal canvas size was used to determine it's current size, even when calculating the new size on a scale factor change, which was kind of problematic already as discussed in #2778.
This PR change that to track the canvas size we set in Winit, so we can use it for recalculations and to report to the user what we set it to when calling
Window::inner_size()
.I briefly explore if it would be possible to query it instead of having to track it, unfortunately there is no reliable way through JS to track the CSS width and height we set ourselves. The closest is
getComputedStyle()
, which has it's own set of problems, among them the fact that it will always return zero until the canvas is actually inserted into the window.Related #2778.
Fixes #2524.