+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:
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;
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);
"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,
<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>
idle, NULL);
} else {
empathy_debug (DEBUG_DOMAIN, "Failed to get nm proxy");
- priv->nm_connected = TRUE;
}
+
+ priv->nm_connected = TRUE;
}
static void
"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);
EmpathyIdle *idle)
{
EmpathyIdlePriv *priv;
+ gboolean nm_connected;
priv = GET_PRIV (idle);
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