diff options
Diffstat (limited to 'swaybar')
-rw-r--r-- | swaybar/render.c | 9 |
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) { | |||
831 | wl_surface_damage(output->surface, 0, 0, | 831 | wl_surface_damage(output->surface, 0, 0, |
832 | output->width, output->height); | 832 | output->width, output->height); |
833 | 833 | ||
834 | uint32_t bg_alpha = ctx.background_color & 0xFF; | ||
835 | if (bg_alpha == 0xFF) { | ||
836 | struct wl_region *region = | ||
837 | wl_compositor_create_region(output->bar->compositor); | ||
838 | wl_region_add(region, 0, 0, INT32_MAX, INT32_MAX); | ||
839 | wl_surface_set_opaque_region(output->surface, region); | ||
840 | wl_region_destroy(region); | ||
841 | } | ||
842 | |||
834 | struct wl_callback *frame_callback = wl_surface_frame(output->surface); | 843 | struct wl_callback *frame_callback = wl_surface_frame(output->surface); |
835 | wl_callback_add_listener(frame_callback, &output_frame_listener, output); | 844 | wl_callback_add_listener(frame_callback, &output_frame_listener, output); |
836 | output->frame_scheduled = true; | 845 | output->frame_scheduled = true; |