diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-07-04 13:49:33 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-07-05 07:35:01 +0300 |
| commit | d2087a2cd9f30e40778861666370df56b532af63 (patch) | |
| tree | 9948e7eb0a723907a76e533e8604eee918940348 /src/ipc | |
| parent | c681198179c3cf5e2e74d3705db2b689671e13f4 (diff) | |
| download | niri-d2087a2cd9f30e40778861666370df56b532af63.tar.gz niri-d2087a2cd9f30e40778861666370df56b532af63.tar.bz2 niri-d2087a2cd9f30e40778861666370df56b532af63.zip | |
Add output ID tracking
Diffstat (limited to 'src/ipc')
| -rw-r--r-- | src/ipc/server.rs | 10 |
1 files changed, 6 insertions, 4 deletions
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() }); |
