desktop: Fix gui scale on launch on wayland

This commit is contained in:
Colin Kinloch 2024-03-26 12:46:06 +00:00 committed by TÖRÖK Attila
parent eec5f9c313
commit 6f568d0a2d
2 changed files with 35 additions and 23 deletions

View File

@ -419,7 +419,15 @@ impl App {
self.window.scale_factor(),
);
let _ = self.window.request_inner_size(window_size);
let viewport_size = self.window.inner_size();
if let Some(new_viewport_size) = self.window.request_inner_size(window_size) {
if new_viewport_size != viewport_size {
self.gui.borrow_mut().resize(new_viewport_size);
} else {
tracing::warn!("Unable to resize window");
}
}
self.window.set_fullscreen(if self.start_fullscreen {
Some(Fullscreen::Borderless(None))
} else {

View File

@ -141,9 +141,7 @@ impl GuiController {
&self.descriptors
}
#[must_use]
pub fn handle_event(&mut self, event: &WindowEvent) -> bool {
if let WindowEvent::Resized(size) = &event {
pub fn resize(&mut self, size: PhysicalSize<u32>) {
if size.width > 0 && size.height > 0 {
self.surface.configure(
&self.descriptors.device,
@ -164,10 +162,16 @@ impl GuiController {
size.height,
self.window.scale_factor(),
);
self.size = *size;
self.size = size;
}
}
#[must_use]
pub fn handle_event(&mut self, event: &WindowEvent) -> bool {
if let WindowEvent::Resized(size) = &event {
self.resize(*size);
}
if let WindowEvent::ThemeChanged(theme) = &event {
let visuals = match theme {
Theme::Dark => egui::Visuals::dark(),