有没有办法改变X11 ConfigureNotify事件频率是多少?(Is there a way

2019-08-05 15:24发布

我有一个使用ConfigureNotify事件来检测窗口大小调整和重绘应用小图形程序。 然而,调整大小事件似乎拖动窗口来调整,这会导致重绘是生涩的时候进来有点慢。 有没有配置此事件发生率的方法吗? 除非是,有没有办法来检测调整大小的开始/结束,直到最终的尺寸已经达到我可以推迟重绘?

Answer 1:

不,这是不可能的配置事件的发生率; 他们刚进来的X服务器认为合适。 然而,图像跳动的一部分可能正是因为你是一个调整大小事件后立即更新窗口(我希望你不要做了事件处理 ......)的原因是,你马上保持X服务器忙你的绘画,给它一点时间来发送事件回。

我对这种行为的标准的解决方案是:调整大小时,用一个定时器定期重新绘制(例如每200毫秒左右)。 使用的宽度和高度,因为它是在油漆程序的开始(请记住,你可以得到调整,而绘画活动!)。 如果还没有从上次计时器事件在宽度/高度的改变,停止计时。

我建议使用XT工具包来实现定时器等回调; 这是一个更容易使用比裸Xlib的要求。



文章来源: Is there a way to change ConfigureNotify event frequency in X11?
标签: c++ c x11