diff options
Diffstat (limited to 'src/ipc')
| -rw-r--r-- | src/ipc/client.rs | 9 | ||||
| -rw-r--r-- | src/ipc/server.rs | 6 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/ipc/client.rs b/src/ipc/client.rs index 1704adfb..3aa5eb22 100644 --- a/src/ipc/client.rs +++ b/src/ipc/client.rs @@ -11,6 +11,10 @@ pub fn handle_msg(msg: Msg, json: bool) -> anyhow::Result<()> { Msg::Outputs => Request::Outputs, Msg::FocusedWindow => Request::FocusedWindow, Msg::Action { action } => Request::Action(action.clone()), + Msg::Output { output, action } => Request::Output { + output: output.clone(), + action: action.clone(), + }, Msg::RequestError => Request::ReturnError, }; @@ -237,6 +241,11 @@ pub fn handle_msg(msg: Msg, json: bool) -> anyhow::Result<()> { bail!("unexpected response: expected Handled, got {response:?}"); }; } + Msg::Output { .. } => { + let Response::Handled = response else { + bail!("unexpected response: expected Handled, got {response:?}"); + }; + } } Ok(()) diff --git a/src/ipc/server.rs b/src/ipc/server.rs index 5e18c16a..59f929d8 100644 --- a/src/ipc/server.rs +++ b/src/ipc/server.rs @@ -169,6 +169,12 @@ fn process(ctx: &ClientCtx, request: Request) -> Reply { }); Response::Handled } + Request::Output { output, action } => { + ctx.event_loop.insert_idle(move |state| { + state.apply_transient_output_config(&output, action); + }); + Response::Handled + } }; Ok(response) |
