desktop-shell: survive NULL output in shell_configure_fullscreen()
Running 'weston-simple-egl -f -b' (fullscreen, unthrottled) caused a crash in shell_ensure_fullscreen_black_view() due to shsurf->fullscreen_output being NULL. Also shell_configure_fullscreen() could crash on that condition. Fix shell_configure_fullscreen() to bail out with minimal work if there is no fullscreen_output. It is unclear if anything will cause a reconfiguration when an output is plugged in. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.com> Reviewed-by: Ian Ray <ian.ray@ge.com>
This commit is contained in:
@@ -2176,6 +2176,13 @@ shell_configure_fullscreen(struct shell_surface *shsurf)
|
|||||||
weston_layer_entry_insert(&shsurf->shell->fullscreen_layer.view_list,
|
weston_layer_entry_insert(&shsurf->shell->fullscreen_layer.view_list,
|
||||||
&shsurf->view->layer_link);
|
&shsurf->view->layer_link);
|
||||||
|
|
||||||
|
if (!shsurf->fullscreen_output) {
|
||||||
|
/* If there is no output, there's not much we can do.
|
||||||
|
* Position the window somewhere, whatever. */
|
||||||
|
weston_view_set_position(shsurf->view, 0, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
shell_ensure_fullscreen_black_view(shsurf);
|
shell_ensure_fullscreen_black_view(shsurf);
|
||||||
|
|
||||||
surface_subsurfaces_boundingbox(surface, &surf_x, &surf_y,
|
surface_subsurfaces_boundingbox(surface, &surf_x, &surf_y,
|
||||||
|
|||||||
Reference in New Issue
Block a user