Fix segfault in output_render

This commit is contained in:
emersion 2018-09-19 11:03:25 +02:00
parent 15dadaaa44
commit 4289343e17

View file

@ -920,6 +920,11 @@ void output_render(struct sway_output *output, struct timespec *when,
return; return;
} }
struct sway_workspace *workspace = output->current.active_workspace;
if (workspace == NULL) {
return;
}
wlr_renderer_begin(renderer, wlr_output->width, wlr_output->height); wlr_renderer_begin(renderer, wlr_output->width, wlr_output->height);
if (!pixman_region32_not_empty(damage)) { if (!pixman_region32_not_empty(damage)) {
@ -935,13 +940,11 @@ void output_render(struct sway_output *output, struct timespec *when,
pixman_region32_union_rect(damage, damage, 0, 0, width, height); pixman_region32_union_rect(damage, damage, 0, 0, width, height);
} }
struct sway_workspace *workspace = output->current.active_workspace;
struct sway_container *fullscreen_con = workspace->current.fullscreen;
if (output_has_opaque_overlay_layer_surface(output)) { if (output_has_opaque_overlay_layer_surface(output)) {
goto render_overlay; goto render_overlay;
} }
struct sway_container *fullscreen_con = workspace->current.fullscreen;
if (fullscreen_con) { if (fullscreen_con) {
float clear_color[] = {0.0f, 0.0f, 0.0f, 1.0f}; float clear_color[] = {0.0f, 0.0f, 0.0f, 1.0f};