From: Patrik Flykt <[email protected]>

Whenever the sort order is updated, schedule ServicesChanged
signal to be sent.
---
 src/service.c |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/service.c b/src/service.c
index 883a8b1..f72ec38 100644
--- a/src/service.c
+++ b/src/service.c
@@ -3891,6 +3891,7 @@ int __connman_service_set_favorite(struct connman_service 
*service,
        favorite_changed(service);
 
        g_sequence_sort_changed(iter, service_compare, NULL);
+       service_schedule_changed();
 
        __connman_connection_update_gateway();
 
@@ -4194,8 +4195,10 @@ static int service_indicate_state(struct connman_service 
*service)
                service->error = CONNMAN_SERVICE_ERROR_UNKNOWN;
 
        iter = g_hash_table_lookup(service_hash, service->identifier);
-       if (iter != NULL)
+       if (iter != NULL) {
                g_sequence_sort_changed(iter, service_compare, NULL);
+               service_schedule_changed();
+       }
 
        __connman_connection_update_gateway();
 
@@ -4906,8 +4909,10 @@ static int service_register(struct connman_service 
*service)
                                                        NULL, service, NULL);
 
        iter = g_hash_table_lookup(service_hash, service->identifier);
-       if (iter != NULL)
+       if (iter != NULL) {
                g_sequence_sort_changed(iter, service_compare, NULL);
+               service_schedule_changed();
+       }
 
        __connman_connection_update_gateway();
 
@@ -5294,8 +5299,10 @@ static void update_from_network(struct connman_service 
*service,
                service->network = connman_network_ref(network);
 
        iter = g_hash_table_lookup(service_hash, service->identifier);
-       if (iter != NULL)
+       if (iter != NULL) {
                g_sequence_sort_changed(iter, service_compare, NULL);
+               service_schedule_changed();
+       }
 }
 
 /**
@@ -5449,8 +5456,10 @@ roaming:
 sorting:
        if (need_sort == TRUE) {
                iter = g_hash_table_lookup(service_hash, service->identifier);
-               if (iter != NULL)
+               if (iter != NULL) {
                        g_sequence_sort_changed(iter, service_compare, NULL);
+                       service_schedule_changed();
+               }
        }
 }
 
-- 
1.7.9.1

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to