Bugfix: Assign all workspace to new outputs as new outputs get available (Thanks badboy)
This commit is contained in:
parent
1b8299002e
commit
6fd56757f0
13
src/randr.c
13
src/randr.c
|
@ -193,6 +193,19 @@ void initialize_output(xcb_connection_t *conn, Output *output, Workspace *worksp
|
||||||
ipc_send_event("workspace", I3_IPC_EVENT_WORKSPACE, "{\"change\":\"init\"}");
|
ipc_send_event("workspace", I3_IPC_EVENT_WORKSPACE, "{\"change\":\"init\"}");
|
||||||
DLOG("initialized output at (%d, %d) with %d x %d\n",
|
DLOG("initialized output at (%d, %d) with %d x %d\n",
|
||||||
output->rect.x, output->rect.y, output->rect.width, output->rect.height);
|
output->rect.x, output->rect.y, output->rect.width, output->rect.height);
|
||||||
|
|
||||||
|
DLOG("assigning configured workspaces to this output...\n");
|
||||||
|
Workspace *ws;
|
||||||
|
TAILQ_FOREACH(ws, workspaces, workspaces) {
|
||||||
|
if (ws == workspace)
|
||||||
|
continue;
|
||||||
|
if (ws->preferred_output == NULL ||
|
||||||
|
get_output_by_name(ws->preferred_output) != output)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
DLOG("assigning ws %d\n", ws->num + 1);
|
||||||
|
workspace_assign_to(ws, output, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -103,7 +103,7 @@ void workspace_set_name(Workspace *ws, const char *name) {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
bool workspace_is_visible(Workspace *ws) {
|
bool workspace_is_visible(Workspace *ws) {
|
||||||
return (ws->output->current_workspace == ws);
|
return (ws->output != NULL && ws->output->current_workspace == ws);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue