X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fdesktop.c;h=74ce916bbe361c7cb840213ef524cb147cb32a2d;hb=cec4cf8fe409cae5618e81e4a3b6dd11cc8b2aa9;hp=ac68b784c15b1bf011b8241a71a572574cb90f28;hpb=52df92d73985dba862a157c5ca3003cbe465e295;p=src%2Fagl-compositor.git diff --git a/src/desktop.c b/src/desktop.c index ac68b78..74ce916 100644 --- a/src/desktop.c +++ b/src/desktop.c @@ -436,6 +436,16 @@ static const struct weston_desktop_api desktop_api = { .set_xwayland_position = desktop_set_xwayland_position, }; +static void +ivi_shell_destroy(struct wl_listener *listener, void *data) +{ + struct ivi_compositor *ivi = container_of(listener, + struct ivi_compositor, destroy_listener); + + weston_desktop_destroy(ivi->desktop); + ivi_compositor_destroy_pending_surfaces(ivi); +} + int ivi_desktop_init(struct ivi_compositor *ivi) { @@ -445,5 +455,10 @@ ivi_desktop_init(struct ivi_compositor *ivi) return -1; } + if (!weston_compositor_add_destroy_listener_once(ivi->compositor, + &ivi->destroy_listener, ivi_shell_destroy)) { + return -1; + } + return 0; }