aboutsummaryrefslogtreecommitdiff
path: root/src/ipc
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipc')
-rw-r--r--src/ipc/client.rs9
-rw-r--r--src/ipc/server.rs6
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)