diff --git a/backend/x11/output.c b/backend/x11/output.c index 05df7984..ce90ea5e 100644 --- a/backend/x11/output.c +++ b/backend/x11/output.c @@ -146,8 +146,8 @@ struct wlr_output *wlr_x11_output_create(struct wlr_backend *backend) { output_set_refresh(&output->wlr_output, 0); - snprintf(wlr_output->name, sizeof(wlr_output->name), "X11-%d", - wl_list_length(&x11->outputs) + 1); + snprintf(wlr_output->name, sizeof(wlr_output->name), "X11-%ld", + ++x11->last_output_num); parse_xcb_setup(wlr_output, x11->xcb); uint32_t mask = XCB_CW_EVENT_MASK; diff --git a/include/backend/x11.h b/include/backend/x11.h index 1a8341f6..67511602 100644 --- a/include/backend/x11.h +++ b/include/backend/x11.h @@ -47,6 +47,7 @@ struct wlr_x11_backend { xcb_screen_t *screen; size_t requested_outputs; + size_t last_output_num; struct wl_list outputs; // wlr_x11_output::link struct wlr_keyboard keyboard;