Commit 31362dd3 authored by Christian Duerr's avatar Christian Duerr

Fix window resize with DPI change

When the DPI factor changed and the window hasn't been resized,
Alacritty incorrectly resized the window to the previous size without
scaling it by the new DPI factor.

This has been fixed by making sure that every resize event triggered by
a DPI change uses the DPI factor to scale the window.
parent a4cb1167
......@@ -292,19 +292,19 @@ impl Display {
// Font size/DPI factor modification detected
if terminal.font_size != self.font_size || (dpr - self.size_info.dpr).abs() > f64::EPSILON {
self.font_size = terminal.font_size;
self.size_info.dpr = dpr;
self.size_info.padding_x = (f64::from(config.padding().x) * dpr).floor() as f32;
self.size_info.padding_y = (f64::from(config.padding().y) * dpr).floor() as f32;
self.update_glyph_cache(config);
if new_size == None {
// Force a resize to refresh things
new_size = Some(PhysicalSize::new(
f64::from(self.size_info.width),
f64::from(self.size_info.height),
f64::from(self.size_info.width) / self.size_info.dpr * dpr,
f64::from(self.size_info.height) / self.size_info.dpr * dpr,
));
}
self.font_size = terminal.font_size;
self.size_info.dpr = dpr;
self.size_info.padding_x = (f64::from(config.padding().x) * dpr).floor() as f32;
self.size_info.padding_y = (f64::from(config.padding().y) * dpr).floor() as f32;
self.update_glyph_cache(config);
}
// Receive any resize events; only call gl::Viewport on last
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment