!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:
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);
}