Some further checks for the black curtain not being present always when
perform hot-plugging operations.
Bug-AGL: SPEC-4625
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Reported-by: Detlev Casanova <detlev.casanova@collabora.com>
Change-Id: Ia7c05e5b90b9e8260f661a8115a93b0d246b9d98
output = wl_container_of(listener, output, output_destroy);
assert(output->output == data);
output = wl_container_of(listener, output, output_destroy);
assert(output->output == data);
- if (output->fullscreen_view.fs->view) {
+ if (output->fullscreen_view.fs &&
+ output->fullscreen_view.fs->view) {
weston_surface_destroy(output->fullscreen_view.fs->view->surface);
output->fullscreen_view.fs->view = NULL;
}
weston_surface_destroy(output->fullscreen_view.fs->view->surface);
output->fullscreen_view.fs->view = NULL;
}
weston_layer_fini(&ivi->popup);
wl_list_for_each(output, &ivi->outputs, link) {
weston_layer_fini(&ivi->popup);
wl_list_for_each(output, &ivi->outputs, link) {
- if (output->fullscreen_view.fs->view) {
+ if (output->fullscreen_view.fs &&
+ output->fullscreen_view.fs->view) {
weston_surface_destroy(output->fullscreen_view.fs->view->surface);
output->fullscreen_view.fs->view = NULL;
}
weston_surface_destroy(output->fullscreen_view.fs->view->surface);
output->fullscreen_view.fs->view = NULL;
}
{
struct weston_view *view;
{
struct weston_view *view;
!output->fullscreen_view.fs &&
!output->fullscreen_view.fs &&
- !output->fullscreen_view.fs->view) {
+ !output->fullscreen_view.fs->view) ||
+ !output->fullscreen_view.fs) {
weston_log("Output %s doesn't have a surface installed!\n", output->name);
return;
}
weston_log("Output %s doesn't have a surface installed!\n", output->name);
return;
}
if ((!output &&
!output->fullscreen_view.fs &&
if ((!output &&
!output->fullscreen_view.fs &&
- !output->fullscreen_view.fs->view) || !output->output) {
+ !output->fullscreen_view.fs->view) || !output->output ||
+ !output->fullscreen_view.fs) {
weston_log("Output %s doesn't have a surface installed!\n", output->name);
return;
}
weston_log("Output %s doesn't have a surface installed!\n", output->name);
return;
}