aboutsummaryrefslogtreecommitdiff
path: root/src/ipc
diff options
context:
space:
mode:
authorDuncan Overbruck <mail@duncano.de>2025-05-10 20:18:49 +0200
committerIvan Molodetskikh <yalterz@gmail.com>2025-05-10 12:14:41 -0700
commita8259b4ceae521311f5152980287ff88d0b984e7 (patch)
tree8f261b5f60242496831a21dddb6a2f32fb454afd /src/ipc
parent9d3d7cb0e973827e5fcaa5d312a05695564a44c0 (diff)
downloadniri-a8259b4ceae521311f5152980287ff88d0b984e7.tar.gz
niri-a8259b4ceae521311f5152980287ff88d0b984e7.tar.bz2
niri-a8259b4ceae521311f5152980287ff88d0b984e7.zip
add WindowUrgencyChanged ipc event
Diffstat (limited to 'src/ipc')
-rw-r--r--src/ipc/client.rs3
-rw-r--r--src/ipc/server.rs6
2 files changed, 9 insertions, 0 deletions
diff --git a/src/ipc/client.rs b/src/ipc/client.rs
index 654890ab..55034ce0 100644
--- a/src/ipc/client.rs
+++ b/src/ipc/client.rs
@@ -433,6 +433,9 @@ pub fn handle_msg(msg: Msg, json: bool) -> anyhow::Result<()> {
Event::WindowFocusChanged { id } => {
println!("Window focus changed: {id:?}");
}
+ Event::WindowUrgencyChanged { id, urgent } => {
+ println!("Window {id}: urgency changed to {urgent}");
+ }
Event::KeyboardLayoutsChanged { keyboard_layouts } => {
println!("Keyboard layouts changed: {keyboard_layouts:?}");
}
diff --git a/src/ipc/server.rs b/src/ipc/server.rs
index b3901998..ef9d9c87 100644
--- a/src/ipc/server.rs
+++ b/src/ipc/server.rs
@@ -476,6 +476,7 @@ fn make_ipc_window(mapped: &Mapped, workspace_id: Option<WorkspaceId>) -> niri_i
workspace_id: workspace_id.map(|id| id.get()),
is_focused: mapped.is_focused(),
is_floating: mapped.is_floating(),
+ is_urgent: mapped.is_urgent(),
})
}
@@ -680,6 +681,11 @@ impl State {
if mapped.is_focused() && !ipc_win.is_focused {
events.push(Event::WindowFocusChanged { id: Some(id) });
}
+
+ let urgent = mapped.is_urgent();
+ if urgent != ipc_win.is_urgent {
+ events.push(Event::WindowUrgencyChanged { id, urgent })
+ }
});
// Check for closed windows.