Add "machine" criterion to match WM_CLIENT_MACHINE

Closes #3981

Add "%machine" title_format placeholder
Add "machine" to the IPC and layout saving/restoring
This commit is contained in:
Albert Safin
2020-04-08 10:58:18 +00:00
committed by Orestis Floros
parent 921226783f
commit 32c10a19f2
16 changed files with 86 additions and 10 deletions

View File

@ -1086,6 +1086,16 @@ static bool handle_class_change(Con *con, xcb_get_property_reply_t *prop) {
return true;
}
/*
* Handles the WM_CLIENT_MACHINE property for assignments and criteria selection.
*
*/
static bool handle_machine_change(Con *con, xcb_get_property_reply_t *prop) {
window_update_machine(con->window, prop);
con = remanage_window(con);
return true;
}
/*
* Handles the _MOTIF_WM_HINTS property of specifing window deocration settings.
*
@ -1197,6 +1207,7 @@ static struct property_handler_t property_handlers[] = {
{0, UINT_MAX, handle_strut_partial_change},
{0, UINT_MAX, handle_window_type},
{0, UINT_MAX, handle_i3_floating},
{0, 128, handle_machine_change},
{0, 5 * sizeof(uint64_t), handle_motif_hints_change}};
#define NUM_HANDLERS (sizeof(property_handlers) / sizeof(struct property_handler_t))
@ -1219,7 +1230,8 @@ void property_handlers_init(void) {
property_handlers[8].atom = A__NET_WM_STRUT_PARTIAL;
property_handlers[9].atom = A__NET_WM_WINDOW_TYPE;
property_handlers[10].atom = A_I3_FLOATING_WINDOW;
property_handlers[11].atom = A__MOTIF_WM_HINTS;
property_handlers[11].atom = XCB_ATOM_WM_CLIENT_MACHINE;
property_handlers[12].atom = A__MOTIF_WM_HINTS;
}
static void property_notify(uint8_t state, xcb_window_t window, xcb_atom_t atom) {