shell: Throttle the log message
[src/agl-compositor.git] / src / shell.c
index 941257a..5a8cc42 100644 (file)
@@ -54,6 +54,7 @@ agl_shell_desktop_advertise_application_id(struct ivi_compositor *ivi,
                                           struct ivi_surface *surface)
 {
        struct desktop_client *dclient;
+       static bool display_adv = false;
 
        if (surface->advertised_on_launch)
                return;
@@ -63,7 +64,10 @@ agl_shell_desktop_advertise_application_id(struct ivi_compositor *ivi,
                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);
@@ -107,6 +111,7 @@ ivi_set_desktop_surface_fullscreen(struct ivi_surface *surface)
        agl_shell_desktop_advertise_application_id(ivi, surface);
 }
 
+#ifdef HAVE_WALTHAM
 void
 ivi_destroy_waltham_destroy(struct ivi_surface *surface)
 {
@@ -177,6 +182,17 @@ ivi_output_notify_waltham_plugin(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)
 {
@@ -746,6 +762,7 @@ shell_ready(struct wl_client *client, struct wl_resource *shell_res)
 
        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;
        }