2

开发一种 Motif GUI 设计工具。在我以编程方式更改属性、添加/删除小部件、移动小部件等之后,我捕获了 Motif 窗口的屏幕截图,显示了当前窗口状态。仅供参考,我正在使用 cairo 2d 将窗口的 Xlib 表面捕获为 png。

大多数情况下这工作正常,但有时我的窗口捕获发生在 UI 更新完成之前。特别是在更改小部件的字体或更改图形标签上的像素图时,我偶尔会注意到这一点。

我想等到窗口完成绘制新状态后再捕获表面。

我怎样才能可靠地做到这一点?看起来 Xlib 曝光事件发生在重绘之前。我看到有一个 PropertyChange 事件 - 但文档没有说明它何时发生与绘图有关。

4

0 回答 0