diff options
author | Davyd Madeley <davyd@madeley.id.au> | 2009-02-11 04:52:36 +0800 |
---|---|---|
committer | xclaesse <xclaesse@4ee84921-47dd-4033-b63a-18d7a039a3e4> | 2009-02-11 04:52:36 +0800 |
commit | fbb70703518055823582b7c751044faa5cbb3e3d (patch) | |
tree | dd4be666c0adadc0faa0e8c7d5fbab42eb3e22c0 /libempathy | |
parent | 79fa98f48a906c675416b4ebf230dec5080faa23 (diff) | |
download | gsoc2013-empathy-fbb70703518055823582b7c751044faa5cbb3e3d.tar gsoc2013-empathy-fbb70703518055823582b7c751044faa5cbb3e3d.tar.gz gsoc2013-empathy-fbb70703518055823582b7c751044faa5cbb3e3d.tar.bz2 gsoc2013-empathy-fbb70703518055823582b7c751044faa5cbb3e3d.tar.lz gsoc2013-empathy-fbb70703518055823582b7c751044faa5cbb3e3d.tar.xz gsoc2013-empathy-fbb70703518055823582b7c751044faa5cbb3e3d.tar.zst gsoc2013-empathy-fbb70703518055823582b7c751044faa5cbb3e3d.zip |
Save status message on NetworkManager disconnect and restore on reconnect
From: Davyd Madeley <davyd@madeley.id.au>
git-svn-id: svn+ssh://svn.gnome.org/svn/empathy/trunk@2432 4ee84921-47dd-4033-b63a-18d7a039a3e4
Diffstat (limited to 'libempathy')
-rw-r--r-- | libempathy/empathy-idle.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/libempathy/empathy-idle.c b/libempathy/empathy-idle.c index f9dd4fca8..178134738 100644 --- a/libempathy/empathy-idle.c +++ b/libempathy/empathy-idle.c @@ -53,6 +53,7 @@ typedef struct { McPresence away_saved_state; McPresence nm_saved_state; + gchar *nm_saved_status; gboolean is_idle; gboolean nm_connected; @@ -242,15 +243,23 @@ idle_nm_state_change_cb (DBusGProxy *proxy, if (old_nm_connected && !new_nm_connected) { /* We are no more connected */ - DEBUG ("Disconnected: Save state %d", priv->state); + DEBUG ("Disconnected: Save state %d (%s)", + priv->state, priv->status); priv->nm_saved_state = priv->state; + g_free (priv->nm_saved_status); + priv->nm_saved_status = g_strdup (priv->status); empathy_idle_set_state (idle, MC_PRESENCE_OFFLINE); } else if (!old_nm_connected && new_nm_connected) { /* We are now connected */ - DEBUG ("Reconnected: Restore state %d", priv->nm_saved_state); - empathy_idle_set_state (idle, priv->nm_saved_state); + DEBUG ("Reconnected: Restore state %d (%s)", + priv->nm_saved_state, priv->nm_saved_status); + empathy_idle_set_presence (idle, + priv->nm_saved_state, + priv->nm_saved_status); priv->nm_saved_state = MC_PRESENCE_UNSET; + g_free (priv->nm_saved_status); + priv->nm_saved_status = NULL; } priv->nm_connected = new_nm_connected; |