--- src/fe-gnome/navigation-tree.c.orig 2006-02-22 00:36:10.000000000 +0000 +++ src/fe-gnome/navigation-tree.c 2006-02-22 00:51:42.000000000 +0000 @@ -1535,11 +1535,31 @@ on_server_reconnect (GtkAction * action, static void on_server_disconnect (GtkAction * action, gpointer data) { + GtkTreeView *treeview; + GtkTreeSelection *select; + GtkTreeModel *model, *store; + GtkTreeIter iter, newiter; session *s; + gboolean temp; - s = navigation_tree_get_selected_session (NULL); - if (s) + treeview = GTK_TREE_VIEW (gui.server_tree); + select = gtk_tree_view_get_selection (treeview); + if (!gtk_tree_selection_get_selected (select, &model, &iter)) + return; + + gtk_tree_model_get (model, &iter, 2, &s, -1); + if (s) { s->server->disconnect (s, TRUE, -1); + + /* disconnect call may have changed tree model, so we have to refresh + * the model/iter here */ + gtk_tree_selection_get_selected (select, &model, &iter); + } + + /* Mark as disconnected */ + store = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (model)); + gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (model), &newiter, &iter); + gtk_tree_store_set (GTK_TREE_STORE (store), &newiter, 6, FALSE, -1); } static void Index: ChangeLog =================================================================== --- ChangeLog (revision 10171) +++ ChangeLog (working copy) @@ -1,3 +1,12 @@ +Tue Feb 21 13:43:13 GMT 2006 Daniel Drake + + * src/fe-gnome/navigation-tree.c: + * src/fe-gnome/navigation-tree.h: + * src/fe-gnome/connect-dialog.c: + - Reuse the currently selected network session if it is disconnected + - Update the connection status of the network when we disconnect + + Mon Feb 20 17:49:38 MST 2006 David Trowbridge * plugins/notification/notification.c: