Il faut rafraichir GTK.
En effet gtk_main() crée une boucle qui exécute les fonctions d'affichage du programme. Cependant, gtk_main() ne travaille que quand il n'y a aucune autre fonction lancée.
Pour laisser la main à gtk_main() pendant une fonction, voici la solution :
while(gtk_events_pending())gtk_main_iteration();
Ce code laisse à gtk_main la main tant qu'il y a des événements à traiter i.e. tant qu'il est nécessaire de mettre à jour l'affichage.
Il faut mettre ce code après chaque mise à jour du buffer.
Partager