summaryrefslogtreecommitdiff
path: root/swaybar/render.c
diff options
context:
space:
mode:
authorWilliam McKinnon <[email protected]>2022-04-27 17:33:23 -0400
committerWilliam McKinnon <[email protected]>2022-04-27 17:33:23 -0400
commit7460d9f565092836f81b917a040caff57142d91a (patch)
treeb76e7facef2aaa5925a62ad6b9995c16663313f0 /swaybar/render.c
parentc37aba2736e31264bdcd52147a96fa85e17c8c5f (diff)
merge sway master
Diffstat (limited to 'swaybar/render.c')
-rw-r--r--swaybar/render.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/swaybar/render.c b/swaybar/render.c
index dcde6b9e..7e2f97b7 100644
--- a/swaybar/render.c
+++ b/swaybar/render.c
@@ -831,6 +831,15 @@ void render_frame(struct swaybar_output *output) {
wl_surface_damage(output->surface, 0, 0,
output->width, output->height);
+ uint32_t bg_alpha = ctx.background_color & 0xFF;
+ if (bg_alpha == 0xFF) {
+ struct wl_region *region =
+ wl_compositor_create_region(output->bar->compositor);
+ wl_region_add(region, 0, 0, INT32_MAX, INT32_MAX);
+ wl_surface_set_opaque_region(output->surface, region);
+ wl_region_destroy(region);
+ }
+
struct wl_callback *frame_callback = wl_surface_frame(output->surface);
wl_callback_add_listener(frame_callback, &output_frame_listener, output);
output->frame_scheduled = true;