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

标签 gtk cairo gtk3 gtk2 custom-widgets

我正在将自定义 Gtk+ 小部件从 Gtk2 移植到 Gtk3,并且我观察到对于后者,我得到 size_allocation来自父窗口小部件(GtkScrolledWindow)的调用,其分配带有负Y坐标。

这会导致我的小部件崩溃并明显做出愚蠢的事情。如果我忽略包含负坐标的调用,一切似乎都工作正常。

所以问题是:

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

gtk+ 3.6.4(Ubuntu 13.04 中的那个)和 3.8 (Ubuntu 13.10) 都会发生这种情况。很快就会测试更高版本。

最佳答案

事实证明,问题在于小部件如何修改其 GtkAdjustment值,需要实现 Scrollable GInterface .

这似乎是因为 Gtk3 在接受奇怪的值(value)观方面似乎更加“自由”。阅读the commit message of the bugfix中的整个故事(开源,是的!)。

关于GtkScrolledWindow 容器向其子级发送带有负坐标的大小分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18259260/

相关文章:

erlang - Debian 无法初始化 GTK+,显示设置是否正确?

c - 如何更改 Gtk2 条目中的字段背景颜色?

animation - GtkDrawingArea/cairo 视觉故障

linux - Linux 上的 SWT 滚动条事件

python - 如何在 GTK 中使用字体文件

x11 - 有没有办法完全禁用pixman

javascript - 在 Windows 8 计算机上安装 Cairo 和 Canvas

c - cairo 上下文对象 cr 在哪里声明?

Python GTK+3教程--窗口显得过大,不像示例图片

c - 设置新模型时是否需要释放GtkListStore?