From: Mark D. <the...@us...> - 2005-02-26 19:00:00
|
Update of /cvsroot/gaim/gaim/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24801/src Modified Files: gtkaccount.c Log Message: sf patch #1151314, from Ephraim Double click to modify account in Accounts window Index: gtkaccount.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkaccount.c,v retrieving revision 1.167 retrieving revision 1.168 diff -u -d -p -r1.167 -r1.168 --- gtkaccount.c 16 Feb 2005 21:06:49 -0000 1.167 +++ gtkaccount.c 26 Feb 2005 18:59:43 -0000 1.168 @@ -2168,6 +2168,32 @@ account_selected_cb(GtkTreeSelection *se gtk_widget_set_sensitive(dialog->delete_button, selected); } +static gboolean +account_treeview_double_click_cb(GtkTreeView *treeview, GdkEventButton *event, gpointer user_data) +{ + AccountsWindow *dialog; + GtkTreePath *path; + GtkTreeIter iter; + GaimAccount *account; + + dialog = (AccountsWindow *)user_data; + + /* Figure out which node was clicked */ + if (!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(dialog->treeview), event->x, event->y, &path, NULL, NULL, NULL)) + return FALSE; + gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter, path); + gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, COLUMN_DATA, &account, -1); + + if ((account != NULL) && (event->button == 1) && + (event->type == GDK_2BUTTON_PRESS)) + { + gaim_gtk_account_dialog_show(GAIM_GTK_MODIFY_ACCOUNT_DIALOG, account); + return TRUE; + } + + return FALSE; +} + static GtkWidget * create_accounts_list(AccountsWindow *dialog) { @@ -2201,6 +2227,10 @@ create_accounts_list(AccountsWindow *dia g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(account_selected_cb), dialog); + /* Handle double-clicking */ + g_signal_connect(G_OBJECT(treeview), "button_press_event", + G_CALLBACK(account_treeview_double_click_cb), dialog); + gtk_container_add(GTK_CONTAINER(sw), treeview); gtk_widget_show(treeview); |