Bugfix: Assign all workspace to new outputs as new outputs get available (Thanks badboy)

This commit is contained in:
Michael Stapelberg 2010-03-26 00:13:28 +01:00
parent 1b8299002e
commit 6fd56757f0
2 changed files with 14 additions and 1 deletions

View File

@ -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);
}
} }
/* /*

View File

@ -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);
} }
/* /*