add: GSList * liste_tmp; GtkTreePath * treepath; GtkTreeIter iter, operation; gboolean toggle, good, clear_tree = 0; struct struct_type_ope * type_ope = NULL;  treepath = gtk_tree_path_new_from_string ( path_str ); gtk_tree_model_get_iter ( GTK_TREE_MODEL (reconcile_model), &iter, treepath );  gtk_tree_model_get (GTK_TREE_MODEL(reconcile_model), &iter, RECONCILIATION_SPLIT_NEUTRAL_COLUMN, &toggle, RECONCILIATION_ACCOUNT_COLUMN, &p_tab_nom_de_compte_variable, -1);  toggle ^= 1; NEUTRES_INCLUS = toggle;   gtk_tree_store_set (GTK_TREE_STORE (reconcile_model), &iter, RECONCILIATION_SPLIT_NEUTRAL_COLUMN, toggle, -1);  if ( toggle ) { liste_tmp = LISTE_TRI;  while ( liste_tmp ) { struct struct_type_ope *type_ope;  if ( GPOINTER_TO_INT ( liste_tmp->data ) > 0 ) { GSList * result = g_slist_find_custom ( TYPES_OPES, liste_tmp->data, (GCompareFunc) recherche_type_ope_par_no ); if (result) type_ope = result->data; if ( type_ope && !type_ope->signe_type ) { LISTE_TRI = g_slist_append ( LISTE_TRI, GINT_TO_POINTER ( - GPOINTER_TO_INT ( liste_tmp->data )));  printf(">>> Adding %s\n", type_ope->nom_type); clear_tree = 1; }  } liste_tmp = liste_tmp -> next; } } else {   liste_tmp = LISTE_TRI;  while ( liste_tmp ) { if ( GPOINTER_TO_INT ( liste_tmp->data ) < 0 ) { LISTE_TRI = g_slist_remove ( LISTE_TRI, liste_tmp -> data ); liste_tmp = LISTE_TRI; clear_tree = 1; } else liste_tmp = liste_tmp -> next; } }  if ( clear_tree ) { gtk_tree_store_clear ( GTK_TREE_STORE(reconcile_model) ); fill_reconciliation_tree ( ); }
context: void reconcile_include_neutral_toggled ( GtkCellRendererToggle *cell, 					 gchar *path_str, gpointer data ){  }