+static gboolean roster_row_activated(GtkTreeView *tree_view, GtkTreePath *path,
+ GtkTreeViewColumn *column, gpointer data)
+{
+ JubGtkRosterUI *roster = data;
+ GtkTreeIter row_iter;
+ GtkTreeModel *tree_model;
+ gchar *jid_s;
+ XMPPJID *jid;
+ OFAutoreleasePool *pool;
+
+ tree_model = gtk_tree_view_get_model(tree_view);
+ gtk_tree_model_get_iter(tree_model, &row_iter, path);
+ gtk_tree_model_get(tree_model, &row_iter, 1, &jid_s, -1);
+
+ // This was a group row
+ if (!jid_s) return TRUE;
+
+ pool = [OFAutoreleasePool new];
+ jid = [XMPPJID JIDWithString: [OFString stringWithUTF8String: jid_s]];
+
+ [roster performSelectorOnMainThread: @selector(chatForJID:)
+ withObject: jid
+ waitUntilDone: NO];
+ [pool release];
+
+ return TRUE;
+}
+