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)
{
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)
{
return false;
}
+bool
+ivi_check_pending_surface(struct ivi_surface *surface)
+{
+ struct ivi_compositor *ivi = surface->ivi;
+ struct wl_list *role_pending_list;
+ struct pending_popup *p_popup;
+ struct pending_split *p_split;
+ struct pending_fullscreen *p_fullscreen;
+ struct pending_remote *p_remote;
+ const char *app_id =
+ weston_desktop_surface_get_app_id(surface->dsurface);
+
+ if (!app_id)
+ return false;
+
+ role_pending_list = &ivi->popup_pending_apps;
+ wl_list_for_each(p_popup, role_pending_list, link) {
+ if (!strcmp(app_id, p_popup->app_id)) {
+ return true;
+ }
+ }
+
+ role_pending_list = &ivi->split_pending_apps;
+ wl_list_for_each(p_split, role_pending_list, link) {
+ if (!strcmp(app_id, p_split->app_id)) {
+ return true;
+ }
+ }
+
+ role_pending_list = &ivi->fullscreen_pending_apps;
+ wl_list_for_each(p_fullscreen, role_pending_list, link) {
+ if (!strcmp(app_id, p_fullscreen->app_id)) {
+ return true;
+ }
+ }
+
+ role_pending_list = &ivi->remote_pending_apps;
+ wl_list_for_each(p_remote, role_pending_list, link) {
+ if (!strcmp(app_id, p_remote->app_id)) {
+ return true;
+ }
+ }
+
+ /* else, we are a regular desktop surface */
+ return false;
+}
+
void
ivi_check_pending_desktop_surface(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