foreign-toplevel-management: add "urgent" state
Closes #132.
Typical use-case for urgent
state is for taskbars to indicate an application is requesting attention, for example when firefox window is activated by xdg-open
via xdg-activation protocol but it's rejected by compositor due to an invalid token.
This is useful especially for stacking compositors like labwc, because they usually allow minimizing windows and they cannot show urgency hint for minimized windows by changing the color of window decoration like sway does. Also, it's worth noting that the recently merged ext-workspace protocol also has urgent
state for workspaces.
As I described in #132, adding an event like needs_attention
or urgent
is another option, but I observed having urgent
state is more consistent with existing compositor implementations (e.g. plasma-window-management protocol, sway-ipc).