From 30aa59759ae9a3629c5f4e6a1d9532c41620328b Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Wed, 2 May 2018 10:21:56 +0200 Subject: [PATCH] desktop-shell: handle NULL output in center_on_output() This is a tentative crash fix for a case where there are no enabled weston_outputs at all. If no output is given, just put the surface at 0,0. At least it should become mostly visible if an output is plugged in, if not centered. Signed-off-by: Pekka Paalanen Signed-off-by: Fabien Lahoudere Reviewed-by: Ian Ray --- desktop-shell/shell.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c index 386177c3..f87151d9 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -4190,6 +4190,11 @@ center_on_output(struct weston_view *view, struct weston_output *output) int32_t surf_x, surf_y, width, height; float x, y; + if (!output) { + weston_view_set_position(view, 0, 0); + return; + } + surface_subsurfaces_boundingbox(view->surface, &surf_x, &surf_y, &width, &height); x = output->x + (output->width - width) / 2 - surf_x / 2;