aboutsummaryrefslogtreecommitdiff
path: root/src/ipc/server.rs
diff options
context:
space:
mode:
authorDuncan Overbruck <mail@duncano.de>2025-03-21 17:48:47 +0100
committerIvan Molodetskikh <yalterz@gmail.com>2025-05-10 12:14:41 -0700
commitcaa6189448cbf338c18fe6afe313f577c8378b31 (patch)
tree97ce7ecb2a94481639e0251c7ce1d3daf27e51cb /src/ipc/server.rs
parent86f57c2ec775d4aa08bf310c94b22ea266eaa9e9 (diff)
downloadniri-caa6189448cbf338c18fe6afe313f577c8378b31.tar.gz
niri-caa6189448cbf338c18fe6afe313f577c8378b31.tar.bz2
niri-caa6189448cbf338c18fe6afe313f577c8378b31.zip
add workspace urgency ipc event
Diffstat (limited to 'src/ipc/server.rs')
-rw-r--r--src/ipc/server.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ipc/server.rs b/src/ipc/server.rs
index 06ff0fd1..b3901998 100644
--- a/src/ipc/server.rs
+++ b/src/ipc/server.rs
@@ -579,6 +579,12 @@ impl State {
});
}
+ // Check if this workspace urgent state changed.
+ let urgent = ws.is_urgent();
+ if urgent != ipc_ws.is_urgent {
+ events.push(Event::WorkspaceUrgencyChanged { id, urgent });
+ }
+
// Check if this workspace became focused.
let is_focused = Some(id) == focused_ws_id;
if is_focused && !ipc_ws.is_focused {
@@ -610,6 +616,7 @@ impl State {
idx: u8::try_from(ws_idx + 1).unwrap_or(u8::MAX),
name: ws.name().cloned(),
output: mon.map(|mon| mon.output_name().clone()),
+ is_urgent: ws.is_urgent(),
is_active: mon.is_some_and(|mon| mon.active_workspace_idx() == ws_idx),
is_focused: Some(id) == focused_ws_id,
active_window_id: ws.active_window().map(|win| win.id().get()),