Desktop: Hook up native window controls (#3161)

* Implement window controls

* Fix drag target size

* Maximize with drag area double click
This commit is contained in:
Timon
2025-09-13 20:15:52 +00:00
committed by GitHub
parent e97d5520e8
commit 944a6eeea2
9 changed files with 29 additions and 4 deletions
+8 -1
View File
@@ -164,6 +164,11 @@ impl WinitApp {
window.set_minimized(minimized);
}
}
DesktopFrontendMessage::DragWindow => {
if let Some(window) = &self.window {
let _ = window.drag_window();
}
}
DesktopFrontendMessage::CloseWindow => {
let _ = self.event_loop_proxy.send_event(CustomEvent::CloseWindow);
}
@@ -271,7 +276,9 @@ impl ApplicationHandler<CustomEvent> for WinitApp {
let mut window = Window::default_attributes()
.with_title(APP_NAME)
.with_min_inner_size(winit::dpi::LogicalSize::new(400, 300))
.with_inner_size(winit::dpi::LogicalSize::new(1200, 800));
.with_inner_size(winit::dpi::LogicalSize::new(1200, 800))
.with_decorations(false)
.with_resizable(true);
#[cfg(target_os = "linux")]
{
@@ -70,6 +70,9 @@ pub(super) fn intercept_frontend_message(dispatcher: &mut DesktopWrapperMessageD
// Forward this to update the UI
return Some(message);
}
FrontendMessage::DragWindow => {
dispatcher.respond(DesktopFrontendMessage::DragWindow);
}
FrontendMessage::CloseWindow => {
dispatcher.respond(DesktopFrontendMessage::CloseWindow);
}
+2 -1
View File
@@ -36,6 +36,8 @@ pub enum DesktopFrontendMessage {
maximized: bool,
minimized: bool,
},
DragWindow,
CloseWindow,
PersistenceWriteDocument {
id: DocumentId,
document: Document,
@@ -55,7 +57,6 @@ pub enum DesktopFrontendMessage {
preferences: Preferences,
},
PersistenceLoadPreferences,
CloseWindow,
}
pub enum DesktopWrapperMessage {