struct ivi_surface *surface)
{
struct desktop_client *dclient;
+ static bool display_adv = false;
if (surface->advertised_on_launch)
return;
const char *app_id =
weston_desktop_surface_get_app_id(surface->dsurface);
if (app_id == NULL) {
- weston_log("WARNING app_is is null, unable to advertise\n");
+ if (!display_adv) {
+ weston_log("WARNING app_is is null, unable to advertise\n");
+ display_adv = true;
+ }
return;
}
agl_shell_desktop_send_application(dclient->resource, app_id);
agl_shell_desktop_advertise_application_id(ivi, surface);
}
+#ifdef HAVE_WALTHAM
+void
+ivi_destroy_waltham_destroy(struct ivi_surface *surface)
+{
+ struct ivi_compositor *ivi = surface->ivi;
+ const struct weston_transmitter_api *api =
+ ivi->waltham_transmitter_api;
+
+ if (!api)
+ return;
+
+ if (surface->waltham_surface.transmitter_surface)
+ api->surface_destroy(surface->waltham_surface.transmitter_surface);
+}
+
static void
ivi_output_notify_waltham_plugin(struct ivi_surface *surface)
{
* wthp_ivi_app_id_surface_create() and is responsible for setting-up
* the gstreamer pipeline as well.
*/
- api->surface_push_to_remote(weston_surface, app_id, trans_remote, NULL);
+ surface->waltham_surface.transmitter_surface =
+ api->surface_push_to_remote(weston_surface, app_id, trans_remote, NULL);
+}
+
+#else
+void
+ivi_destroy_waltham_destroy(struct ivi_surface *surface)
+{
}
+static void
+ivi_output_notify_waltham_plugin(struct ivi_surface *surface)
+{
+}
+#endif
static void
ivi_set_desktop_surface_remote(struct ivi_surface *surface)
weston_layer_entry_remove(&view->layer_link);
weston_view_update_transform(view);
- weston_output_damage(output->output);
+ weston_view_damage_below(view);
}
void
view->surface->is_mapped = true;
weston_view_update_transform(view);
- weston_output_damage(output->output);
+ weston_view_damage_below(view);
}
static void
wl_list_for_each_safe(surface, tmp, &ivi->pending_surfaces, link) {
wl_list_remove(&surface->link);
+ wl_list_init(&surface->link);
ivi_check_pending_desktop_surface(surface);
+ surface->checked_pending = true;
}
}
return;
}
+ surface->checked_pending = true;
surface->role = IVI_SURFACE_ROLE_BACKGROUND;
surface->bg.output = output;
wl_list_remove(&surface->link);
return;
}
+ surface->checked_pending = true;
surface->role = IVI_SURFACE_ROLE_PANEL;
surface->panel.output = output;
surface->panel.edge = edge;