rem: if ( DEBUG ) printf ( "gsb_transactions_list_set_current_transaction %d\n", transaction_number );
add: devel_debug ( g_strdup_printf ("gsb_transactions_list_set_current_transaction %d", transaction_number ));
context: gboolean gsb_transactions_list_set_current_transaction ( gint transaction_number ){    GtkTreeIter *iter;    gint i;    GdkColor *couleur;    GtkTreeModel *model;    gint current_transaction_number;    gint account_number;    if ( DEBUG )	printf ( "gsb_transactions_list_set_current_transaction %d\n",		 transaction_number );        if ( !gsb_transactions_list_get_tree_view()	 ||	 !transaction_number )	return FALSE;        /* the white number has no account number, so we take the current account */    if ( transaction_number != -1 )	account_number = gsb_data_transaction_get_account_number (transaction_number);    else	account_number = gsb_data_account_get_current_account ();    current_transaction_number =  gsb_data_account_get_current_transaction_number (account_number);        /* if there is no change in the selection, go away */    if ( transaction_number == current_transaction_number )	return FALSE;    model = GTK_TREE_MODEL (gsb_transactions_list_get_store());    /*   vire l'ancienne sélection : consiste à remettre la couleur d'origine du background */    iter = gsb_transactions_list_get_iter_from_transaction (current_transaction_number,							    0 );    if ( iter )    {	/* 	iter est maintenant positionné sur la 1ère ligne de l'opé à désélectionner */	for ( i=0 ; i<gsb_data_account_get_nb_rows ( account_number ) ; i++ )	{	    gtk_tree_model_get ( GTK_TREE_MODEL ( model ),				 iter,				 TRANSACTION_COL_NB_SAVE_BACKGROUND, &couleur,				 -1 );	    gtk_tree_store_set ( GTK_TREE_STORE ( model ),				 iter,				 TRANSACTION_COL_NB_BACKGROUND,couleur,				 -1 );	    gtk_tree_store_set ( GTK_TREE_STORE ( model ),				 iter,				 TRANSACTION_COL_NB_SAVE_BACKGROUND, NULL,				 -1 );	    /* if it's a breakdown of transaction, it's only 1 line */	    if ( gsb_data_transaction_get_mother_transaction_number (current_transaction_number))		i = gsb_data_account_get_nb_rows (account_number);	    gtk_tree_model_iter_next ( GTK_TREE_MODEL ( model ),				       iter );	}	gtk_tree_iter_free (iter);    }    gsb_data_account_set_current_transaction_number ( account_number,						      transaction_number);    iter = gsb_transactions_list_get_iter_from_transaction (transaction_number,							    0 );/*     xxx j'en suis ici *//* 	l'autre : arrive pas à sélectionner une opé fille, le pb vient de gsb_transactions_list_get_iter_from_transaction *//* 	car gtk_tree_model_iter_next ne descend pas dans les enfants, donc trouver un moyen à partir de l'opé mère *//* 	après il reste à modifier l'attache des enfants à la mère quand change le nb de lignes affichées *//* 	puis voir pour l'histoire des R qu'on affiche pas au démarrage *//*  */    if ( iter )    {	/* 	iter est maintenant positionne sur la 1ère ligne de l'ope à sélectionner */	for ( i=0 ; i<gsb_data_account_get_nb_rows ( account_number ) ; i++ )	{	    gtk_tree_model_get ( GTK_TREE_MODEL ( model ),				 iter,				 TRANSACTION_COL_NB_BACKGROUND, &couleur,				 -1 );	    gtk_tree_store_set ( GTK_TREE_STORE ( model ),				 iter,				 TRANSACTION_COL_NB_BACKGROUND, &couleur_selection,				 -1 );	    gtk_tree_store_set ( GTK_TREE_STORE ( model ),				 iter,				 TRANSACTION_COL_NB_SAVE_BACKGROUND, couleur,				 -1 );	    /* if it's a breakdown of transaction, it's only 1 line */	    if ( gsb_data_transaction_get_mother_transaction_number (transaction_number))		i = gsb_data_account_get_nb_rows (account_number);	    gtk_tree_model_iter_next ( GTK_TREE_MODEL ( model ),				       iter );	}	gtk_tree_iter_free (iter);    }    return FALSE;}