Glisser-déposer sur un conteneur fixe change sa taille

J’ai développé une application gtk2 (Conky Companion) en C pour aider les utilisateurs de mes scripts conky

Lien: http://crunchbanglinux.org/forums/topic/19235/conky-weather-scripts-using-accuweatherwundergroundnwsweathercom/

créer leurs propres conkyrcs avec une relative facilité. Une capture d’écran de l’écran principal est la suivante:

http://soffr.miximages.com/c/jWl88.jpg

L’utilisateur peut faire glisser des icons ou des étiquettes de droite à gauche, les déplacer, les redimensionner, changer leur taille ou leur couleur, etc. Lorsqu’il le souhaite, il peut appuyer sur le bouton de génération et générer un fichier conkyrc.

L’écran est une fenêtre supérieure, non redimensionnable avec une table. Les 2 côtés de la table sont des frameworks dans lesquels des conteneurs fixes ont été mis.
Chaque fois que quelqu’un essaie de placer une icône ou une étiquette sur la bordure droite ou inférieure du conteneur de cadre / gauche fixe, le widget sort des limites, comme le montre la capture d’écran ci-dessus.

J’essaie maintenant de porter l’application sur Gtk3 et je suis confronté à un problème étrange.
Lorsqu’un utilisateur essaie de placer ou de déplacer un object sur la bordure droite ou inférieure du conteneur de cadre / fixe de gauche, il se redimensionne lui-même pour accueillir le widget nouvellement placé.

http://soffr.miximages.com/c/d1lc4.jpg

Si je déplace l’object vers la gauche (ou le haut), le cadre reprend sa taille définie par gtk_widget_set_size_request.

Y at-il un moyen de faire un conteneur fixe … fixe? Je ne veux pas le redimensionner.

Le code qui place le cadre et le conteneur fixe dans la fenêtre est le suivant:

/* LEFT FRAME */ frame1= gtk_frame_new(NULL); gtk_table_attach(GTK_TABLE(table), frame1, 0,14,0,49,GTK_SHRINK,GTK_SHRINK,0,0); gtk_widget_set_size_request(frame1, 360,570); gtk_widget_show(frame1); /* LEFT FRAME - FIXED CONTAINER */ fixed1 = gtk_fixed_new(); gtk_widget_set_has_window(fixed1,TRUE); gtk_container_add(GTK_CONTAINER(frame1),fixed1); gtk_widget_modify_bg (fixed1, GTK_STATE_NORMAL, &color); gtk_drag_dest_set ( fixed1, GTK_DEST_DEFAULT_ALL, target_list, 1, GDK_ACTION_COPY|GDK_ACTION_MOVE); g_signal_connect (fixed1, "drag-drop",G_CALLBACK (dr_data_rec_1d1), (gpointer)fixed1); gtk_widget_show(fixed1); 

J’ai essayé les choses suivantes:
1) Utilisation de GTK_EXPAND et GTK_FILL pour le placement du cadre. Pas de changement.
2) gtk_window_set_geometry_hints pour la fenêtre, la table, le cadre et le conteneur fixe. Pas de changement.
3) Remplacement de gtk_table par gtk_grid. Pas de changement.

Je ne sais trop quoi faire ni pour quoi chercher; Je ne sais même pas si le problème se situe dans la fenêtre, le tableau, le cadre, le conteneur fixe ou dans certains parameters de glisser-déposer obscurs.

Nous attendons avec impatience tout indice et nous nous excusons si la solution est facile et / ou évidente.