From d6edab79ba1b0f8037f6c42e92ef98b0cdaaa843 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Wed, 14 Mar 2012 15:42:05 +0100 Subject: [PATCH] location-manager: use geoclue_master_client_create_address_async() https://bugzilla.gnome.org/show_bug.cgi?id=671994 --- libempathy-gtk/empathy-location-manager.c | 37 +++++++++++++++-------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/libempathy-gtk/empathy-location-manager.c b/libempathy-gtk/empathy-location-manager.c index 9c72d301..22b2c236 100644 --- a/libempathy-gtk/empathy-location-manager.c +++ b/libempathy-gtk/empathy-location-manager.c @@ -475,6 +475,28 @@ update_resources (EmpathyLocationManager *self) set_requirements (self, update_resources_set_requirements_cb); } +static void +create_address_cb (GeoclueMasterClient *client, + GeoclueAddress *address, + GError *error, + gpointer userdata) +{ + EmpathyLocationManager *self = userdata; + + if (error != NULL) + { + DEBUG ("Failed to create GeoclueAddress: %s", error->message); + return; + } + + self->priv->gc_address = address; + + g_signal_connect (G_OBJECT (self->priv->gc_address), "address-changed", + G_CALLBACK (address_changed_cb), self); + + self->priv->geoclue_is_setup = TRUE; +} + static void create_position_cb (GeoclueMasterClient *client, GeocluePosition *position, @@ -495,19 +517,8 @@ create_position_cb (GeoclueMasterClient *client, G_CALLBACK (position_changed_cb), self); /* Get updated when the address changes */ - self->priv->gc_address = geoclue_master_client_create_address ( - self->priv->gc_client, &error); - if (self->priv->gc_address == NULL) - { - DEBUG ("Failed to create GeoclueAddress: %s", error->message); - g_error_free (error); - return; - } - - g_signal_connect (G_OBJECT (self->priv->gc_address), "address-changed", - G_CALLBACK (address_changed_cb), self); - - self->priv->geoclue_is_setup = TRUE; + geoclue_master_client_create_address_async (self->priv->gc_client, + create_address_cb, self); } static void -- 2.39.2