X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fdesktop.c;h=0e1a989ee181b51e6c409c2be601c78a17f53beb;hb=1304d412eb2bcefd4733539213ecb9b6ca39a605;hp=28ef52b47c57e28102915edc27d890bad0811927;hpb=40f5e3bbfac73375bc4f881b3a168fb0d9297c9b;p=src%2Fagl-compositor.git diff --git a/src/desktop.c b/src/desktop.c index 28ef52b..0e1a989 100644 --- a/src/desktop.c +++ b/src/desktop.c @@ -344,6 +344,19 @@ desktop_committed(struct weston_desktop_surface *dsurface, !wl_list_empty(&surface->ivi->desktop_clients)) wl_signal_emit(&surface->signal_advertise_app, surface); + /* this repaint schedule is needed to allow resizing to work with the + * help of the hidden layer: + * + * 1. add the view in the hidden layer and send out correct dimensions + * 2. clients changes its dimensions + * 3. client commits with the new dimensions + * + * For desktop and fullscreen, desktop_surface_added() sends the + * dimensions from the beginning so applications no need to resize, but + * if that weren't the case we still need this in. + */ + weston_compositor_schedule_repaint(surface->ivi->compositor); + switch (surface->role) { case IVI_SURFACE_ROLE_DESKTOP: case IVI_SURFACE_ROLE_REMOTE: @@ -449,8 +462,10 @@ 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_shell_finalize(ivi); ivi_compositor_destroy_pending_surfaces(ivi); + + weston_desktop_destroy(ivi->desktop); wl_list_remove(&listener->link); }