diff options
Diffstat (limited to 'libpurple/accounts.c')
-rw-r--r-- | libpurple/accounts.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libpurple/accounts.c b/libpurple/accounts.c index 7c9344e3a2..7bbf7f5066 100644 --- a/libpurple/accounts.c +++ b/libpurple/accounts.c @@ -36,6 +36,15 @@ static GList *accounts = NULL; static guint save_timer = 0; static gboolean accounts_loaded = FALSE; +static void +purple_accounts_network_changed_cb(GNetworkMonitor *m, gboolean available, + gpointer data) +{ + if(available) { + purple_accounts_restore_current_statuses(); + } +} + /********************************************************************* * Writing to disk * *********************************************************************/ @@ -986,6 +995,9 @@ purple_accounts_init(void) load_accounts(); + g_signal_connect(G_OBJECT(g_network_monitor_get_default()), + "network-changed", + purple_accounts_network_changed_cb, NULL); } void |