feat: add window management (list, minimize-all, focus, maximize)
This commit is contained in:
parent
c9643c8543
commit
9f06d84f28
7 changed files with 277 additions and 1 deletions
|
|
@ -14,6 +14,7 @@ use helios_common::{ClientMessage, ServerMessage};
|
|||
mod shell;
|
||||
mod screenshot;
|
||||
mod input;
|
||||
mod windows_mgmt;
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
struct Config {
|
||||
|
|
@ -266,6 +267,50 @@ async fn handle_message(
|
|||
}
|
||||
}
|
||||
|
||||
ServerMessage::ListWindowsRequest { request_id } => {
|
||||
info!("ListWindows");
|
||||
match windows_mgmt::list_windows() {
|
||||
Ok(windows) => ClientMessage::ListWindowsResponse { request_id, windows },
|
||||
Err(e) => {
|
||||
error!("ListWindows failed: {e}");
|
||||
ClientMessage::Error { request_id, message: e }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ServerMessage::MinimizeAllRequest { request_id } => {
|
||||
info!("MinimizeAll");
|
||||
match windows_mgmt::minimize_all() {
|
||||
Ok(()) => ClientMessage::Ack { request_id },
|
||||
Err(e) => {
|
||||
error!("MinimizeAll failed: {e}");
|
||||
ClientMessage::Error { request_id, message: e }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ServerMessage::FocusWindowRequest { request_id, window_id } => {
|
||||
info!("FocusWindow: {window_id}");
|
||||
match windows_mgmt::focus_window(window_id) {
|
||||
Ok(()) => ClientMessage::Ack { request_id },
|
||||
Err(e) => {
|
||||
error!("FocusWindow failed: {e}");
|
||||
ClientMessage::Error { request_id, message: e }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ServerMessage::MaximizeAndFocusRequest { request_id, window_id } => {
|
||||
info!("MaximizeAndFocus: {window_id}");
|
||||
match windows_mgmt::maximize_and_focus(window_id) {
|
||||
Ok(()) => ClientMessage::Ack { request_id },
|
||||
Err(e) => {
|
||||
error!("MaximizeAndFocus failed: {e}");
|
||||
ClientMessage::Error { request_id, message: e }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ServerMessage::Ack { request_id } => {
|
||||
info!("Server ack for {request_id}");
|
||||
// Nothing to do - server acked something we sent
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue