From d2087a2cd9f30e40778861666370df56b532af63 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Thu, 4 Jul 2024 13:49:33 +0400 Subject: Add output ID tracking --- src/ipc/server.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/ipc') diff --git a/src/ipc/server.rs b/src/ipc/server.rs index 7987ca5c..d05131a3 100644 --- a/src/ipc/server.rs +++ b/src/ipc/server.rs @@ -143,7 +143,8 @@ async fn process(ctx: &ClientCtx, request: Request) -> Reply { Request::Version => Response::Version(version()), Request::Outputs => { let ipc_outputs = ctx.ipc_outputs.lock().unwrap().clone(); - Response::Outputs(ipc_outputs) + let outputs = ipc_outputs.values().cloned().map(|o| (o.name.clone(), o)); + Response::Outputs(outputs.collect()) } Request::FocusedWindow => { let window = ctx.ipc_focused_window.lock().unwrap().clone(); @@ -183,8 +184,8 @@ async fn process(ctx: &ClientCtx, request: Request) -> Reply { Request::Output { output, action } => { let ipc_outputs = ctx.ipc_outputs.lock().unwrap(); let found = ipc_outputs - .keys() - .any(|name| name.eq_ignore_ascii_case(&output)); + .values() + .any(|o| o.name.eq_ignore_ascii_case(&output)); let response = if found { OutputConfigChanged::Applied } else { @@ -223,7 +224,8 @@ async fn process(ctx: &ClientCtx, request: Request) -> Reply { .ipc_outputs() .lock() .unwrap() - .get(&active_output) + .values() + .find(|o| o.name == active_output) .cloned() }); -- cgit