diff --git a/proxies/app_supervisor_proxy.c b/proxies/app_supervisor_proxy.c index c6634618..bed190ad 100644 --- a/proxies/app_supervisor_proxy.c +++ b/proxies/app_supervisor_proxy.c @@ -2,7 +2,7 @@ /* * LADI Session Handler (ladish) * - * Copyright (C) 2009 Nedko Arnaudov + * Copyright (C) 2009, 2010 Nedko Arnaudov * ************************************************************************** * This file contains implementation of code that interfaces @@ -67,7 +67,15 @@ static void on_app_added(void * context, DBusMessage * message_ptr) } //log_info("AppAdded signal received. id=%"PRIu64", name='%s', %srunning, %s, level %u", id, name, running ? "" : "not ", terminal ? "terminal" : "shell", (unsigned int)level); - proxy_ptr->app_added(proxy_ptr->context, id, name, running, terminal, level); + + if (new_list_version <= proxy_ptr->version) + { + log_info("Ignoring signal for older version of the app list"); + } + else + { + proxy_ptr->app_added(proxy_ptr->context, id, name, running, terminal, level); + } } static void on_app_removed(void * context, DBusMessage * message_ptr) @@ -88,7 +96,14 @@ static void on_app_removed(void * context, DBusMessage * message_ptr) } //log_info("AppRemoved signal received, id=%"PRIu64, id); - proxy_ptr->app_removed(proxy_ptr->context, id); + if (new_list_version <= proxy_ptr->version) + { + log_info("Ignoring signal for older version of the app list"); + } + else + { + proxy_ptr->app_removed(proxy_ptr->context, id); + } } static void on_app_state_changed(void * context, DBusMessage * message_ptr)