From 5d584ca8ef032cecaf05fcc4ceca0db24e70ff16 Mon Sep 17 00:00:00 2001 From: Lucas Almeida Rocha Date: Mon, 27 Jun 2005 04:27:15 +0000 Subject: Double-clicking on list dialog --- src/tree.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/tree.c') diff --git a/src/tree.c b/src/tree.c index e60e262f..46b68c23 100644 --- a/src/tree.c +++ b/src/tree.c @@ -38,6 +38,8 @@ static gboolean print_all_columns = FALSE; static gint print_column_n = 1; static void zenity_tree_dialog_response (GtkWidget *widget, int response, gpointer data); +static void zenity_tree_row_activated (GtkTreeView *tree_view, GtkTreePath *tree_path, + GtkTreeViewColumn *tree_col, gpointer data); static gboolean zenity_tree_dialog_untoggle (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) @@ -328,6 +330,10 @@ zenity_tree (ZenityData *data, ZenityTreeData *tree_data) tree_view = glade_xml_get_widget (glade_dialog, "zenity_tree_view"); + if (!(tree_data->radiobox || tree_data->checkbox)) + g_signal_connect (G_OBJECT (tree_view), "row-activated", + G_CALLBACK (zenity_tree_row_activated), data); + /* Create an empty list store */ model = g_object_new (GTK_TYPE_LIST_STORE, NULL); @@ -584,3 +590,23 @@ zenity_tree_dialog_response (GtkWidget *widget, int response, gpointer data) } gtk_main_quit (); } + +static void +zenity_tree_row_activated (GtkTreeView *tree_view, GtkTreePath *tree_path, + GtkTreeViewColumn *tree_col, gpointer data) +{ + ZenityData *zen_data = data; + GtkTreeSelection *selection; + GtkTreeModel *model; + + model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view)); + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)); + gtk_tree_selection_selected_foreach (selection, + (GtkTreeSelectionForeachFunc) zenity_tree_dialog_get_selected, + GTK_TREE_VIEW (tree_view)); + + zenity_tree_dialog_output (); + zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK); + gtk_main_quit (); +} -- cgit