Bonjour à tous et à toutes.
Mon problème est le suivant :

J'ai un editeur qui peut gérer plusieurs fichier avec le système d'onglet.
Mais pour mes propre raison, j'ai besoin de la fonction "gtk_notebook_get_current_page" qui indique le numéro de la page ouverte.
Cette fonction se trouve dans une fonction relié au signal "switch-page"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
g_signal_connect(G_OBJECT(Liste_onglet), "switch-page", G_CALLBACK(Change_Buffer), Liste_onglet);
Liste_onglet est un widget statique (C'est déconseillé mais c'est temporaire)

L'ennui c'est que la fonction qui contient "gtk_notebook_get_current_page" me sort n'importe quoi...
Le premier onglet qui apparaît cela me sort -1, des fois le prgramme décide d'inverser les nombres, ainsi un 2 (d'après lui) devient 1 etc...

Voici le code pour ceux qui ne comprennent pas ce que je veux dire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
void Change_Buffer(GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data)
{
 
    gint Nombre;
    Nombre = gtk_notebook_get_current_page(GTK_NOTEBOOK(user_data));
    GtkWidget *Dialogue;
    Dialogue = gtk_message_dialog_new(GTK_WINDOW(MainWindow), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Vous etes a la page %ld", Nombre);
    gtk_dialog_run(GTK_DIALOG(Dialogue));
    gtk_widget_destroy(Dialogue);
    /* On trouuve le nombre de l'onglet ouvert */
 
    gchar *Contenu_buffer = g_list_nth_data(Liste_Contenu, Nombre-1);
    /* On trouve le contenu du buffer */
 
    gtk_text_buffer_get_start_iter(TextBuffer, &Debut);
    printf("%s", Contenu_buffer);
 
    if(Contenu_buffer != NULL)
    {
    gtk_text_buffer_insert(TextBuffer, &Debut, g_locale_to_utf8(Contenu_buffer, -1, NULL, NULL, NULL), -1);
    /* On insere le texte dans le buffer */
    }
 
    g_free(Contenu_buffer);
 
}

Je ne vois aucune erreur mais si quelqu'un pouvait m'aider je lui en serais reconnaiassant