diff --git a/dwl.c b/dwl.c index 6d74a3f..1eee591 100644 --- a/dwl.c +++ b/dwl.c @@ -859,10 +859,13 @@ createmon(struct wl_listener *listener, void *data) const MonitorRule *r; size_t i; struct wlr_output_state state; - Monitor *m = wlr_output->data = ecalloc(1, sizeof(*m)); - m->wlr_output = wlr_output; + Monitor *m; - wlr_output_init_render(wlr_output, alloc, drw); + if (!wlr_output_init_render(wlr_output, alloc, drw)) + return; + + m = wlr_output->data = ecalloc(1, sizeof(*m)); + m->wlr_output = wlr_output; for (i = 0; i < LENGTH(m->layers); i++) wl_list_init(&m->layers[i]);