From: Mark D. <the...@us...> - 2005-02-26 19:00:39
|
Update of /cvsroot/gaim/gaim/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24798/src Modified Files: Tag: oldstatus 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.147.2.3 retrieving revision 1.147.2.4 diff -u -d -p -r1.147.2.3 -r1.147.2.4 --- gtkaccount.c 10 Feb 2005 00:07:01 -0000 1.147.2.3 +++ gtkaccount.c 26 Feb 2005 19:00:19 -0000 1.147.2.4 @@ -2267,6 +2267,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) { @@ -2299,6 +2325,10 @@ create_accounts_list(AccountsWindow *dia gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), GTK_SELECTION_MULTIPLE); + /* 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); |