Bugfix: correctly initialize workspaces if RandR is not available (Thanks stesie)
parent
21034d7d00
commit
dc702a023a
28
src/randr.c
28
src/randr.c
|
@ -364,6 +364,22 @@ static void handle_output(xcb_connection_t *conn, xcb_randr_output_t id,
|
||||||
new->changed = true;
|
new->changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void init_workspaces() {
|
||||||
|
Output *output;
|
||||||
|
Workspace *ws;
|
||||||
|
|
||||||
|
/* Just go through each active output and associate one workspace */
|
||||||
|
TAILQ_FOREACH(output, &outputs, outputs) {
|
||||||
|
if (!output->active || output->current_workspace != NULL)
|
||||||
|
continue;
|
||||||
|
ws = get_first_workspace_for_output(output);
|
||||||
|
initialize_output(global_conn, output, ws);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* render_layout flushes */
|
||||||
|
render_layout(global_conn);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (Re-)queries the outputs via RandR and stores them in the list of outputs.
|
* (Re-)queries the outputs via RandR and stores them in the list of outputs.
|
||||||
*
|
*
|
||||||
|
@ -387,6 +403,7 @@ void randr_query_outputs(xcb_connection_t *conn) {
|
||||||
rcookie = xcb_randr_get_screen_resources_current(conn, root);
|
rcookie = xcb_randr_get_screen_resources_current(conn, root);
|
||||||
if ((res = xcb_randr_get_screen_resources_current_reply(conn, rcookie, NULL)) == NULL) {
|
if ((res = xcb_randr_get_screen_resources_current_reply(conn, rcookie, NULL)) == NULL) {
|
||||||
disable_randr(conn);
|
disable_randr(conn);
|
||||||
|
init_workspaces();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
cts = res->config_timestamp;
|
cts = res->config_timestamp;
|
||||||
|
@ -494,16 +511,7 @@ void randr_query_outputs(xcb_connection_t *conn) {
|
||||||
|
|
||||||
ewmh_update_workarea();
|
ewmh_update_workarea();
|
||||||
|
|
||||||
/* Just go through each active output and associate one workspace */
|
init_workspaces();
|
||||||
TAILQ_FOREACH(output, &outputs, outputs) {
|
|
||||||
if (!output->active || output->current_workspace != NULL)
|
|
||||||
continue;
|
|
||||||
ws = get_first_workspace_for_output(output);
|
|
||||||
initialize_output(conn, output, ws);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* render_layout flushes */
|
|
||||||
render_layout(conn);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue