From 2ce961a0bd2d92e091f993d0f63cd01bf06158c7 Mon Sep 17 00:00:00 2001 From: John Lindgren Date: Fri, 24 Dec 2021 15:53:49 -0500 Subject: [PATCH] Check the return value of wlr_output_layout_get() for NULL wlr_output_layout_get() seems to return NULL for disabled outputs. Fixes: #174 --- src/output.c | 4 ++++ src/view.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/output.c b/src/output.c index aa1a8209..3f97402c 100644 --- a/src/output.c +++ b/src/output.c @@ -526,6 +526,10 @@ render_osd(struct output *output, pixman_region32_t *damage, struct wlr_output_layout_output *ol_output; wl_list_for_each(o, &server->outputs, link) { ol_output = wlr_output_layout_get(layout, o->wlr_output); + if (!ol_output) { + continue; + } + struct wlr_box box = { .x = ol_output->x + o->wlr_output->width / o->wlr_output->scale / 2, diff --git a/src/view.c b/src/view.c index 738a08bf..8675d073 100644 --- a/src/view.c +++ b/src/view.c @@ -125,6 +125,10 @@ view_center(struct view *view) struct wlr_output_layout *layout = view->server->output_layout; struct wlr_output_layout_output *ol_output = wlr_output_layout_get(layout, wlr_output); + if (!ol_output) { + return; + } + int center_x = ol_output->x + wlr_output->width / wlr_output->scale / 2; int center_y = ol_output->y + wlr_output->height / wlr_output->scale / 2; view_move(view, center_x - view->w / 2, center_y - view->h / 2);