Bonjour voila je fais un editeur de texte, j'éssais d'implémenter a fonction bold ( mettre la poile en gras ), donc voila j'ai une structure accésible dans tous mes fichiers la voici :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| typedef struct
{
gchar *chemin;
gboolean sauve;
GtkTextView *p_text_view;
GtkTextBuffer *p_text_buffer;
} document_t;
typedef struct
{
GList *tous;
document_t *actif;
GtkWindow *p_main_window;
GtkNotebook *p_notebook;
} docs_t;
extern docs_t docs; |
Et voici ma fonction bold :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| void cb_bold (GtkWidget *p_widget, gpointer user_data)
{
GtkTextIter start;
GtkTextIter end;
gboolean res = FALSE;
gtk_text_buffer_create_tag(docs.actif->p_text_buffer,"bold","weight", PANGO_WEIGHT_BOLD, NULL);
res = gtk_text_buffer_get_selection_bounds (docs.actif->p_text_buffer,&start,&end);
if(res)
{
gtk_text_buffer_apply_tag(docs.actif->p_text_buffer,"bold",&start,&end);
}
//gtk_text_buffer_set_text(docs.actif->p_text_buffer,"test",4);
} |
Sauf que voila quand je clique sur mon bouton mon apply crash sans rien dir ...
J'ai mit comme test :
gtk_text_buffer_set_text(docs.actif->p_text_buffer,"test",4);
Il modifie bien mon buffer et l'actualise correctement dans mon p_text_view donc je ne pense pas que cela vienne de ma structure.
Apparemment ca serait la fonction
gtk_text_buffer_apply_tag(docs.actif->p_text_buffer,"bold",&start,&end);
qui ferait crasher , mais je ne vois pas pourquoi je lui envois bien les arguments nécessaires
Aide svp
Partager