ipc: send a workspace event when the urgency flag changes
This commit is contained in:
parent
35a791f7e6
commit
77efb29d9f
2
docs/ipc
2
docs/ipc
|
@ -268,7 +268,7 @@ output::
|
||||||
|
|
||||||
This event consists of a single serialized map containing a property
|
This event consists of a single serialized map containing a property
|
||||||
+change (string)+ which indicates the type of the change ("focus", "init",
|
+change (string)+ which indicates the type of the change ("focus", "init",
|
||||||
"empty").
|
"empty", "urgent").
|
||||||
|
|
||||||
*Example:*
|
*Example:*
|
||||||
---------------------
|
---------------------
|
||||||
|
|
|
@ -425,16 +425,21 @@ void workspace_unmap_clients(xcb_connection_t *conn, Workspace *u_ws) {
|
||||||
*/
|
*/
|
||||||
void workspace_update_urgent_flag(Workspace *ws) {
|
void workspace_update_urgent_flag(Workspace *ws) {
|
||||||
Client *current;
|
Client *current;
|
||||||
|
bool old_flag = ws->urgent;
|
||||||
|
bool urgent = false;
|
||||||
|
|
||||||
SLIST_FOREACH(current, &(ws->focus_stack), focus_clients) {
|
SLIST_FOREACH(current, &(ws->focus_stack), focus_clients) {
|
||||||
if (!current->urgent)
|
if (!current->urgent)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
ws->urgent = true;
|
urgent = true;
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ws->urgent = false;
|
ws->urgent = urgent;
|
||||||
|
|
||||||
|
if (old_flag != urgent)
|
||||||
|
ipc_send_event("workspace", I3_IPC_EVENT_WORKSPACE, "{\"change\":\"urgent\"}");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue