mirror of
https://github.com/swaywm/sway.git
synced 2024-11-26 01:41:30 +00:00
swaybar: set opaque region
When the background color is fully opaque, set the surface's opaque region to the whole surface.
This commit is contained in:
parent
dd8b6f5e68
commit
3dffe7f3a6
|
@ -831,6 +831,15 @@ void render_frame(struct swaybar_output *output) {
|
||||||
wl_surface_damage(output->surface, 0, 0,
|
wl_surface_damage(output->surface, 0, 0,
|
||||||
output->width, output->height);
|
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);
|
struct wl_callback *frame_callback = wl_surface_frame(output->surface);
|
||||||
wl_callback_add_listener(frame_callback, &output_frame_listener, output);
|
wl_callback_add_listener(frame_callback, &output_frame_listener, output);
|
||||||
output->frame_scheduled = true;
|
output->frame_scheduled = true;
|
||||||
|
|
Loading…
Reference in a new issue