From 5cf3bfdf8d8e5d61ce10b2c04e467375ddac7740 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Thu, 6 Dec 2007 15:49:12 +0000 Subject: When NM is in sleeping (=disabled) state, do just like if it was 2007-12-06 Xavier Claessens * libempathy-gtk/empathy-preferences.c: * libempathy-gtk/empathy-preferences.glade: * libempathy/empathy-idle.c: When NM is in sleeping (=disabled) state, do just like if it was connected. Remove option from preference dialog to disabled NM support because NM can be disabled using nm-applet, but let the option in gconf, it can be useful in case of buggy NM. svn path=/trunk/; revision=469 --- libempathy/empathy-idle.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'libempathy') diff --git a/libempathy/empathy-idle.c b/libempathy/empathy-idle.c index 10d5b7bde..6ef72609e 100644 --- a/libempathy/empathy-idle.c +++ b/libempathy/empathy-idle.c @@ -208,8 +208,9 @@ empathy_idle_init (EmpathyIdle *idle) idle, NULL); } else { empathy_debug (DEBUG_DOMAIN, "Failed to get nm proxy"); - priv->nm_connected = TRUE; } + + priv->nm_connected = TRUE; } static void @@ -468,7 +469,7 @@ empathy_idle_set_use_nm (EmpathyIdle *idle, "Couldn't get NM state: %s", error->message); g_clear_error (&error); - nm_status = NM_STATE_CONNECTED; + nm_status = NM_STATE_ASLEEP; } idle_nm_state_change_cb (priv->nm_proxy, nm_status, idle); @@ -573,6 +574,7 @@ idle_nm_state_change_cb (DBusGProxy *proxy, EmpathyIdle *idle) { EmpathyIdlePriv *priv; + gboolean nm_connected; priv = GET_PRIV (idle); @@ -583,20 +585,23 @@ idle_nm_state_change_cb (DBusGProxy *proxy, return; } - if (state != NM_STATE_CONNECTED && priv->nm_connected) { + nm_connected = !(state == NM_STATE_CONNECTING || + state == NM_STATE_DISCONNECTED); + + if (priv->nm_connected && !nm_connected) { /* We are no more connected */ idle_ext_away_stop (idle); - priv->nm_saved_state = priv->state; + priv->nm_saved_state = priv->state; empathy_idle_set_state (idle, MC_PRESENCE_OFFLINE); - priv->nm_connected = FALSE; } - else if (state == NM_STATE_CONNECTED && !priv->nm_connected) { + else if (!priv->nm_connected && nm_connected) { /* We are now connected */ - priv->nm_connected = TRUE; - empathy_idle_set_state (idle, priv->nm_saved_state); priv->nm_saved_state = MC_PRESENCE_UNSET; + empathy_idle_set_state (idle, priv->nm_saved_state); } + + priv->nm_connected = nm_connected; } static void -- cgit v1.2.3