mirror of
https://codeberg.org/dnkl/yambar.git
synced 2025-06-20 01:25:39 +02:00
bar: flush cairo surface before copying pixmap to bar window
This commit is contained in:
parent
73c93bad5a
commit
092e83680b
1 changed files with 7 additions and 3 deletions
10
bar.c
10
bar.c
|
@ -74,6 +74,7 @@ struct private {
|
||||||
char *cursor_name;
|
char *cursor_name;
|
||||||
|
|
||||||
cairo_t *cairo;
|
cairo_t *cairo;
|
||||||
|
cairo_surface_t *cairo_surface;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -203,8 +204,10 @@ expose(const struct bar *_bar)
|
||||||
x += bar->left_spacing + e->width + bar->right_spacing;
|
x += bar->left_spacing + e->width + bar->right_spacing;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cairo_surface_flush(bar->cairo_surface);
|
||||||
xcb_copy_area(bar->conn, bar->pixmap, bar->win, bar->gc,
|
xcb_copy_area(bar->conn, bar->pixmap, bar->win, bar->gc,
|
||||||
0, 0, 0, 0, bar->width, bar->height_with_border);
|
0, 0, 0, 0, bar->width, bar->height_with_border);
|
||||||
|
xcb_flush(bar->conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -517,9 +520,10 @@ run(struct bar_run_context *run_ctx)
|
||||||
XCB_GC_FOREGROUND | XCB_GC_GRAPHICS_EXPOSURES,
|
XCB_GC_FOREGROUND | XCB_GC_GRAPHICS_EXPOSURES,
|
||||||
(const uint32_t []){screen->white_pixel, 0});
|
(const uint32_t []){screen->white_pixel, 0});
|
||||||
|
|
||||||
cairo_surface_t *surface = cairo_xcb_surface_create(
|
LOG_DBG("cairo: %s", cairo_version_string());
|
||||||
|
bar->cairo_surface = cairo_xcb_surface_create(
|
||||||
bar->conn, bar->pixmap, vis, bar->width, bar->height_with_border);
|
bar->conn, bar->pixmap, vis, bar->width, bar->height_with_border);
|
||||||
bar->cairo = cairo_create(surface);
|
bar->cairo = cairo_create(bar->cairo_surface);
|
||||||
|
|
||||||
xcb_map_window(bar->conn, bar->win);
|
xcb_map_window(bar->conn, bar->win);
|
||||||
|
|
||||||
|
@ -673,7 +677,7 @@ run(struct bar_run_context *run_ctx)
|
||||||
LOG_DBG("modules joined");
|
LOG_DBG("modules joined");
|
||||||
|
|
||||||
cairo_destroy(bar->cairo);
|
cairo_destroy(bar->cairo);
|
||||||
cairo_surface_destroy(surface);
|
cairo_surface_destroy(bar->cairo_surface);
|
||||||
cairo_debug_reset_static_data();
|
cairo_debug_reset_static_data();
|
||||||
|
|
||||||
if (bar->cursor_ctx != NULL) {
|
if (bar->cursor_ctx != NULL) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue