From 9a6aee1410913ce169e4a359596daae2aad35332 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Tue, 22 May 2018 13:00:50 +0200 Subject: [PATCH] Make only Cells selectable --- tree-renderer/tree-store.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tree-renderer/tree-store.c b/tree-renderer/tree-store.c index 40eeb67..d729ce0 100644 --- a/tree-renderer/tree-store.c +++ b/tree-renderer/tree-store.c @@ -2,6 +2,27 @@ #include "lib-cell-renderer.h" #include "../gds-types.h" +static gboolean tree_sel_func(GtkTreeSelection *selection, + GtkTreeModel *model, + GtkTreePath *path, + gboolean path_currently_selected, + gpointer data) +{ + static int cnt = 0; + GtkTreeIter iter; + struct gds_cell *cell; + gchar *p; + + gtk_tree_model_get_iter(model, &iter, path); + gtk_tree_model_get(model, &iter, CELL_SEL_CELL, &cell, -1); + + /* Allow only rows with valid cell to be selected */ + if (cell) + return TRUE; + else + return FALSE; +} + GtkTreeStore *setup_cell_selector(GtkTreeView* view) { GtkTreeStore *cell_store; @@ -52,5 +73,9 @@ GtkTreeStore *setup_cell_selector(GtkTreeView* view) column = gtk_tree_view_column_new_with_attributes("Acc. Date", render_dates, "text", CELL_SEL_ACCESSDATE, NULL); gtk_tree_view_append_column(view, column); + /* Callback for selection + * This prevents selecting a library */ + gtk_tree_selection_set_select_function(gtk_tree_view_get_selection(view), tree_sel_func, NULL, NULL); + return cell_store; }