为什么在我移动窗口之前cairo xcb表面不更新?

时间:2018-12-02 15:29:10

标签: rust cairo xcb

我在锈蚀中使用xcbcairo绑定在X上绘制一些东西。然后我使用一个函数绘制多边形(下面的代码):

fn polygon(&self, points: &[Position], color: Color) {
    if points.len() >= 2 {
        let context = cairo::Context::new(&self.cairo_surface);
        context.set_source_rgb(color.r, color.g, color.b);
        context.move_to(points[0].x as f64, points[0].y as f64);
        for i in 1..(points.len()) {
            context.line_to(points[i].x as f64, points[i].y as f64);
        }
        context.close_path();
        context.fill();
    }
}

绘制后,我会冲洗开罗表面和xcb连接。但是,直到我移动窗口或切换窗口(使用Alt + Tab),多边形才会出现。

我还使用pangocairo在其上绘制文本。没问题。

0 个答案:

没有答案