output: initialize layers and signal before using functions

The previous pull request #2993 tried to fix this by moving the function which
used the layers after the initilization.
Since this initialization is done unconditionally only depending on the struct
definition, move the layer initialization to the beginning of the function.
Also move the signal initialization of the destroy event.

Fixes #2992
This commit is contained in:
Rouven Czerwinski 2018-10-28 10:39:26 +01:00
parent 707f3ad275
commit e4df675840

View file

@ -65,6 +65,12 @@ void output_enable(struct sway_output *output, struct output_config *oc) {
return; return;
} }
struct wlr_output *wlr_output = output->wlr_output; struct wlr_output *wlr_output = output->wlr_output;
size_t len = sizeof(output->layers) / sizeof(output->layers[0]);
for (size_t i = 0; i < len; ++i) {
wl_list_init(&output->layers[i]);
}
wl_signal_init(&output->events.destroy);
output->enabled = true; output->enabled = true;
apply_output_config(oc, output); apply_output_config(oc, output);
list_add(root->outputs, output); list_add(root->outputs, output);
@ -92,12 +98,6 @@ void output_enable(struct sway_output *output, struct output_config *oc) {
ipc_event_workspace(NULL, ws, "init"); ipc_event_workspace(NULL, ws, "init");
} }
size_t len = sizeof(output->layers) / sizeof(output->layers[0]);
for (size_t i = 0; i < len; ++i) {
wl_list_init(&output->layers[i]);
}
wl_signal_init(&output->events.destroy);
input_manager_configure_xcursor(); input_manager_configure_xcursor();
wl_signal_add(&wlr_output->events.mode, &output->mode); wl_signal_add(&wlr_output->events.mode, &output->mode);