GtkScrolledWindow容器向其子容器发送带有负坐标的大小分配

GtkScrolledWindow容器向其子容器发送带有负坐标的大小分配,gtk,cairo,gtk3,gtk2,custom-widgets,Gtk,Cairo,Gtk3,Gtk2,Custom Widgets,我正在将一个定制的Gtk+小部件从Gtk2移植到Gtk3,并且我观察到,对于后者,我收到了来自父小部件(GtkScrolledWindow)的调用,该小部件具有负Y坐标的分配 这会导致我的小部件发疯,显然会做一些愚蠢的事情。如果我忽略包含负坐标的调用,一切似乎都正常 因此,问题是: 这是gtk错误吗 如果不是,在什么情况下家长应该发送负坐标 为什么这会发生在GTK3而不是GTK2中 gtk+3.6.4(Ubuntu13.04中的版本)和3.8(Ubuntu13.10)都会出现这种情况。将很快

我正在将一个定制的Gtk+小部件从Gtk2移植到Gtk3,并且我观察到,对于后者,我收到了来自父小部件(GtkScrolledWindow)的调用,该小部件具有负Y坐标的
分配

这会导致我的小部件发疯,显然会做一些愚蠢的事情。如果我忽略包含负坐标的调用,一切似乎都正常

因此,问题是:

  • 这是gtk错误吗
  • 如果不是,在什么情况下家长应该发送负坐标
  • 为什么这会发生在GTK3而不是GTK2中

gtk+3.6.4(Ubuntu13.04中的版本)和3.8(Ubuntu13.10)都会出现这种情况。将很快测试更高版本。

事实证明,问题在于小部件如何修改其值,这是实现该功能所必需的


这似乎是因为Gtk3在接受怪异的价值观时显得更加“自由”。在(开源,是的!)中阅读整个故事。

好奇的是,您能分享您使用的测试以及产生分配“问题”的测试吗?真的很好奇。当然,我实际上是在减少它,使其具有尽可能小的测试用例em,我会尽快在这里链接到它it@drahnr我终于用答案回答了我自己的问题