backend/x11 & backend/wayland: make set_title NULL-safe

Set the default "wlroots - " title when the title argument to the
set_title functions is NULL. Otherwise, for at least the Wayland
backend, we'd crash because xdg_toplevel_set_title doesn't handle a NULL
pointer.
This commit is contained in:
Jente Hidskes 2019-01-24 13:48:26 +01:00
parent 4cb0697e57
commit 85d84a1a04
No known key found for this signature in database
GPG key ID: 04BE5A29F32D91EA
2 changed files with 19 additions and 8 deletions

View file

@ -314,10 +314,7 @@ struct wlr_output *wlr_wl_output_create(struct wlr_backend *wlr_backend) {
goto error;
}
char title[32];
if (snprintf(title, sizeof(title), "wlroots - %s", wlr_output->name)) {
xdg_toplevel_set_title(output->xdg_toplevel, title);
}
wlr_wl_output_set_title(wlr_output, NULL);
xdg_toplevel_set_app_id(output->xdg_toplevel, "wlroots");
xdg_surface_add_listener(output->xdg_surface,
@ -369,5 +366,14 @@ error:
void wlr_wl_output_set_title(struct wlr_output *output, const char *title) {
struct wlr_wl_output *wl_output = get_wl_output_from_output(output);
char wl_title[32];
if (title == NULL) {
if (snprintf(wl_title, sizeof(wl_title), "wlroots - %s", output->name) <= 0) {
return;
}
title = wl_title;
}
xdg_toplevel_set_title(wl_output->xdg_toplevel, title);
}