desktop-shell: Don't try to notice disappearing outputs during fade
This is a trap - it's not harmful to let the animation complete - it is harmful to call weston_shell_utils_curtain_destroy() in mid animation. It results in immediately completing the animation, which attempts to destroy the curtain a second time. Fixes a crash when (on a multi-output system) the display is disconnected during the fade out, then reconnected before the fade-in starts. Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
This commit is contained in:
parent
dd956e5b8b
commit
8ac621d672
@ -3979,15 +3979,7 @@ shell_fade(struct desktop_shell *shell, enum fade_type type)
|
||||
weston_view_set_alpha(shell->fade.curtain->view, 1.0 - tint);
|
||||
}
|
||||
|
||||
if (shell->fade.curtain->view->output == NULL) {
|
||||
/* If the black view gets a NULL output, we lost the
|
||||
* last output and we'll just cancel the fade. This
|
||||
* happens when you close the last window under the
|
||||
* X11 or Wayland backends. */
|
||||
shell->locked = false;
|
||||
weston_shell_utils_curtain_destroy(shell->fade.curtain);
|
||||
shell->fade.curtain = NULL;
|
||||
} else if (shell->fade.animation) {
|
||||
if (shell->fade.animation) {
|
||||
weston_fade_update(shell->fade.animation, tint);
|
||||
} else {
|
||||
shell->fade.animation =
|
||||
|
Loading…
x
Reference in New Issue
Block a user