拖放固定容器会改变其大小

我在C中开发了一个gtk2应用程序(Conky Companion)来帮助我的conky脚本用户

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

相对轻松地创建自己的conkyrcs。 主屏幕的屏幕截图如下:

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

用户可以从右侧向左侧拖放图标或标签,移动它们,调整它们大小,改变它们的大小或颜色等。当开心时,他可以按下生成按钮并生成一个conkyrc文件。

屏幕是一个带有桌子的顶部不可resize的窗口。 桌子的两侧是放置固定容器的框架。
每当有人试图在左框架/固定容器的右边框或下边框放置图标或标签时,窗口小部件就会脱离边界,正如您在上面的屏幕截图中看到的那样。

我现在正试图将应用程序移植到Gtk3,我面临着一个奇怪的问题。
每当用户尝试将对象放置或移动到左框架/固定容器的右边框或底部边框时,它会调整自身大小以适应新放置的窗口小部件。

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

如果我将对象向左移动(或向上移动),则帧将返回到由gtk_widget_set_size_request定义的大小。

有没有办法让固定容器……固定? 我不希望它resize。

将框架和固定容器放在窗口中的代码如下:

/* 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); 

我尝试过以下的事情:
1)摆弄GTK_EXPAND和GTK_FILL以放置框架。 没变。
2)gtk_window_set_geometry_hints用于窗口,表格,框架和固定容器。 没变。
3)用gtk_grid替换gtk_table。 没变。

我不知道该做什么或搜索什么; 我甚至不知道问题是在窗口,桌子,框架,固定容器中还是在一些模糊的拖放设置中。

期待任何暗示和抱歉,如果解决方案容易和/或明显。