diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2023-04-27 21:32:54 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2023-04-27 21:32:54 +0200 |
commit | 19b3d98bd069ad3a3b15cfa3a96af704fd1ab6dc (patch) | |
tree | 9dc3b9905f142521126c32031c6d6ed72fa6f595 | |
parent | 720d830acdfdd836f4be8eeefae17f22c77459cf (diff) | |
parent | a766109d1ec219ba8535a714a8061054eb24500f (diff) | |
download | ayatana-indicator-messages-19b3d98bd069ad3a3b15cfa3a96af704fd1ab6dc.tar.gz ayatana-indicator-messages-19b3d98bd069ad3a3b15cfa3a96af704fd1ab6dc.tar.bz2 ayatana-indicator-messages-19b3d98bd069ad3a3b15cfa3a96af704fd1ab6dc.zip |
Merge branch '3v1n0-handle-user-properly'
Attributes GH PR #36: https://github.com/AyatanaIndicators/ayatana-indicator-messages/pull/36
-rw-r--r-- | src/im-accounts-service.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/im-accounts-service.c b/src/im-accounts-service.c index 4051208..1070e1d 100644 --- a/src/im-accounts-service.c +++ b/src/im-accounts-service.c @@ -56,6 +56,7 @@ im_accounts_service_init (ImAccountsService *self) priv->cancel = g_cancellable_new(); priv->user_manager = act_user_manager_get_default(); + g_signal_connect(priv->user_manager, "user-added", G_CALLBACK(user_changed), self); g_signal_connect(priv->user_manager, "user-changed", G_CALLBACK(user_changed), self); g_signal_connect(priv->user_manager, "notify::is-loaded", G_CALLBACK(on_user_manager_loaded), self); @@ -103,6 +104,10 @@ user_changed (ActUserManager * manager, ActUser * user, gpointer user_data) /* Clear old proxies */ g_clear_object(&priv->touch_settings); + g_cancellable_cancel(priv->cancel); + g_clear_object(&priv->cancel); + priv->cancel = g_cancellable_new(); + /* Start getting a new proxy */ g_dbus_proxy_new_for_bus(G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, @@ -123,7 +128,10 @@ security_privacy_ready (GObject * obj, GAsyncResult * res, gpointer user_data) GDBusProxy * proxy = g_dbus_proxy_new_for_bus_finish(res, &error); if (error != NULL) { - g_warning("Unable to get a proxy on accounts service for touch settings: %s", error->message); + if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { + g_warning("Unable to get a proxy on accounts service for touch settings: %s", + error->message); + } g_error_free(error); return; } |