Bonjour

J'ouvre un série de fenêtres avec une boucle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
    for (rep=0;rep<node1->fils;rep++)
    {
        sprintf(ch,"%s.pers",node1->child[rep].content->texte);
        gr_tmp=ouvrir_perso_groupe(ch,debut,GTK_WINDOW(param),param_t);
        if (gr_tmp!=NULL)
        {
            debut=gr_tmp;
            param_t[4]=(gpointer)debut;
        }
    }
Les fenêtres ainsi crées sont bien ouvertes lors de l'appel de la fonction ouvrir_perso_groupe par un gtk_widget_show_all (win);.
Je voudrais les placer décalées les une parrapport aux autres pour toutes les voir. J'ai donc penser par la suite les décaller avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
        gtk_window_move(GTK_WINDOW(gr_tmp->fils),x,y);
        gtk_window_get_size(GTK_WINDOW(gr_tmp->fils),&l,&h);
        x+=(3*l)/5;y+=h/5;
        if ((x+l/2)>gdk_screen_width()) x-=(gdk_screen_width()-30);
        if ((y+h/2)>gdk_screen_height()) y-=(gdk_screen_height()-30);
Mais, le problème est que gtk_windows_get_size renvoie toujours 16 et 16 comme taille sûrement parce que la fenêtre n'est pas encore ouverte ( voir http://library.gnome.org/devel/gtk/2...indow-get-size )
J'ai remplacé momentanément l'incrémentation de la position parÇa marche, mais ça me convient guère...

Que faire ? Je ne veux pas bouger l'ensemble des fenêtres si je bouge la première.

nb : en écrivant ce mesage, je me suis dit qu'il faurait peut-être attendre que la fenêtre soit présente. Je vais chercher !
J'ai fait un essai bloquant (les fenêtres sont ouvertes => taille différentes de 16 alors, mais, elles ne sont pas remplies) en prenant en compte que les dimensions sont par défaut de 16 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
        /*do
        {
            gtk_window_get_size(GTK_WINDOW(gr_tmp->fils),&l,&h);
        }
        while (l==16 && h==16);
        x+=(3*l)/5;y+=h/5;*/