swaybar/bg: Fix crash on DPMS off

When turning off displays via DPMS, swaybar and swaybg still tried to
render, but did not get a valid buffer, causing them to crash.
This commit is contained in:
minus 2018-07-14 00:01:43 +02:00
parent e0e31418d4
commit c73a40555f
2 changed files with 6 additions and 0 deletions

View file

@ -503,6 +503,9 @@ void render_frame(struct swaybar *bar, struct swaybar_output *output) {
output->buffers, output->buffers,
output->width * output->scale, output->width * output->scale,
output->height * output->scale); output->height * output->scale);
if (!output->current_buffer) {
return;
}
cairo_t *shm = output->current_buffer->cairo; cairo_t *shm = output->current_buffer->cairo;
cairo_save(shm); cairo_save(shm);

View file

@ -68,6 +68,9 @@ static void render_frame(struct swaybg_state *state) {
buffer_height = state->height * state->scale; buffer_height = state->height * state->scale;
state->current_buffer = get_next_buffer(state->shm, state->current_buffer = get_next_buffer(state->shm,
state->buffers, buffer_width, buffer_height); state->buffers, buffer_width, buffer_height);
if (!state->current_buffer) {
return;
}
cairo_t *cairo = state->current_buffer->cairo; cairo_t *cairo = state->current_buffer->cairo;
if (state->args->mode == BACKGROUND_MODE_SOLID_COLOR) { if (state->args->mode == BACKGROUND_MODE_SOLID_COLOR) {
cairo_set_source_u32(cairo, state->context.color); cairo_set_source_u32(cairo, state->context.color);