diff --git a/include/data.h b/include/data.h index 8f2c197d..b3cac928 100644 --- a/include/data.h +++ b/include/data.h @@ -460,7 +460,6 @@ struct Assignment { * * A_COMMAND = run the specified command for the matching window * A_TO_WORKSPACE = assign the matching window to the specified workspace - * A_TO_OUTPUT = assign the matching window to the specified output * * While the type is a bitmask, only one value can be set at a time. It is * a bitmask to allow filtering for multiple types, for example in the @@ -470,18 +469,16 @@ struct Assignment { enum { A_ANY = 0, A_COMMAND = (1 << 0), - A_TO_WORKSPACE = (1 << 1), - A_TO_OUTPUT = (1 << 2) + A_TO_WORKSPACE = (1 << 1) } type; /** the criteria to check if a window matches */ Match match; - /** destination workspace/output/command, depending on the type */ + /** destination workspace/command, depending on the type */ union { char *command; char *workspace; - char *output; } dest; TAILQ_ENTRY(Assignment) assignments; diff --git a/src/config.c b/src/config.c index b41f0e1b..6f906b8c 100644 --- a/src/config.c +++ b/src/config.c @@ -158,8 +158,6 @@ void load_configuration(xcb_connection_t *conn, const char *override_configpath, assign = TAILQ_FIRST(&assignments); if (assign->type == A_TO_WORKSPACE) FREE(assign->dest.workspace); - else if (assign->type == A_TO_OUTPUT) - FREE(assign->dest.output); else if (assign->type == A_COMMAND) FREE(assign->dest.command); match_free(&(assign->match)); diff --git a/src/manage.c b/src/manage.c index 7c464b43..077d5720 100644 --- a/src/manage.c +++ b/src/manage.c @@ -253,23 +253,20 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki /* See if any container swallows this new window */ nc = con_for_window(search_at, cwindow, &match); if (nc == NULL) { - /* If not, check if it is assigned to a specific workspace / output */ - if ((assignment = assignment_for(cwindow, A_TO_WORKSPACE | A_TO_OUTPUT))) { + /* If not, check if it is assigned to a specific workspace */ + if ((assignment = assignment_for(cwindow, A_TO_WORKSPACE))) { DLOG("Assignment matches (%p)\n", match); - if (assignment->type == A_TO_WORKSPACE) { - Con *assigned_ws = workspace_get(assignment->dest.workspace, NULL); - nc = con_descend_tiling_focused(assigned_ws); - DLOG("focused on ws %s: %p / %s\n", assigned_ws->name, nc, nc->name); - if (nc->type == CT_WORKSPACE) - nc = tree_open_con(nc, cwindow); - else - nc = tree_open_con(nc->parent, cwindow); + Con *assigned_ws = workspace_get(assignment->dest.workspace, NULL); + nc = con_descend_tiling_focused(assigned_ws); + DLOG("focused on ws %s: %p / %s\n", assigned_ws->name, nc, nc->name); + if (nc->type == CT_WORKSPACE) + nc = tree_open_con(nc, cwindow); + else + nc = tree_open_con(nc->parent, cwindow); - /* set the urgency hint on the window if the workspace is not visible */ - if (!workspace_is_visible(assigned_ws)) - urgency_hint = true; - } - /* TODO: handle assignments with type == A_TO_OUTPUT */ + /* set the urgency hint on the window if the workspace is not visible */ + if (!workspace_is_visible(assigned_ws)) + urgency_hint = true; } else if (startup_ws) { /* If it’s not assigned, but was started on a specific workspace, * we want to open it there */