]> git.0d.be Git - empathy.git/commitdiff
When NM is in sleeping (=disabled) state, do just like if it was
authorXavier Claessens <xclaesse@gmail.com>
Thu, 6 Dec 2007 15:49:12 +0000 (15:49 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Thu, 6 Dec 2007 15:49:12 +0000 (15:49 +0000)
2007-12-06  Xavier Claessens  <xclaesse@gmail.com>

* 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

ChangeLog
libempathy-gtk/empathy-preferences.c
libempathy-gtk/empathy-preferences.glade
libempathy/empathy-idle.c

index 178e9afa8513db5f237abefee37abd3c6ba69b16..6274dd053e1058f9bb8217611621df44d77094d6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2007-12-06  Xavier Claessens  <xclaesse@gmail.com>
+
+       * 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.
+
 2007-12-06  Xavier Claessens  <xclaesse@gmail.com>
 
        * data/empathy.schemas.in:
index 14ee8f76341265e101cf2c2170f3336ad088014a..a8b52954d598faab9fa441ed16614287456d591b 100644 (file)
@@ -50,7 +50,6 @@ typedef struct {
        GtkWidget *combobox_chat_theme;
        GtkWidget *checkbutton_theme_chat_room;
        GtkWidget *checkbutton_separate_chat_windows;
-       GtkWidget *checkbutton_use_nm;
        GtkWidget *radiobutton_contact_list_sort_by_name;
        GtkWidget *radiobutton_contact_list_sort_by_state;
 
@@ -178,10 +177,6 @@ preferences_setup_widgets (EmpathyPreferences *preferences)
                                          EMPATHY_PREFS_UI_SEPARATE_CHAT_WINDOWS,
                                          preferences->checkbutton_separate_chat_windows);
 
-       preferences_hookup_toggle_button (preferences,
-                                         EMPATHY_PREFS_USE_NM,
-                                         preferences->checkbutton_use_nm);
-
        preferences_hookup_toggle_button (preferences,
                                          EMPATHY_PREFS_UI_SHOW_AVATARS,
                                          preferences->checkbutton_show_avatars);
@@ -944,7 +939,6 @@ empathy_preferences_show (GtkWindow *parent)
                "combobox_chat_theme", &preferences->combobox_chat_theme,
                "checkbutton_theme_chat_room", &preferences->checkbutton_theme_chat_room,
                "checkbutton_separate_chat_windows", &preferences->checkbutton_separate_chat_windows,
-               "checkbutton_use_nm", &preferences->checkbutton_use_nm,
                "radiobutton_contact_list_sort_by_name", &preferences->radiobutton_contact_list_sort_by_name,
                "radiobutton_contact_list_sort_by_state", &preferences->radiobutton_contact_list_sort_by_state,
                "checkbutton_sounds_for_messages", &preferences->checkbutton_sounds_for_messages,
index 5c332119710c9f044ce32d9756260e14734f5c32..4db860f1354f9e89b122345d3bc5f5624f0836f5 100644 (file)
                              <property name="fill">False</property>
                            </packing>
                          </child>
-
-                         <child>
-                           <widget class="GtkCheckButton" id="checkbutton_use_nm">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="label" translatable="yes">_Use network manager</property>
-                             <property name="use_underline">True</property>
-                             <property name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                             <property name="active">False</property>
-                             <property name="inconsistent">False</property>
-                             <property name="draw_indicator">True</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
                        </widget>
                      </child>
                    </widget>
index 10d5b7bde4d0232e492adf1e1b2e6243d7ecd388..6ef72609e2a2a3d971d7394abfb715c77f430f07 100644 (file)
@@ -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