|
|
|
@ -307,11 +307,11 @@ static void premultiply_alpha(float color[4], float opacity) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void render_view_surfaces(struct sway_view *view,
|
|
|
|
|
struct sway_output *output, pixman_region32_t *damage) {
|
|
|
|
|
struct sway_output *output, pixman_region32_t *damage, float alpha) {
|
|
|
|
|
struct render_data data = {
|
|
|
|
|
.output = output,
|
|
|
|
|
.damage = damage,
|
|
|
|
|
.alpha = view->swayc->alpha,
|
|
|
|
|
.alpha = alpha,
|
|
|
|
|
};
|
|
|
|
|
output_view_for_each_surface(
|
|
|
|
|
view, &data.root_geo, render_surface_iterator, &data);
|
|
|
|
@ -323,7 +323,7 @@ static void render_view_surfaces(struct sway_view *view,
|
|
|
|
|
static void render_view(struct sway_output *output, pixman_region32_t *damage,
|
|
|
|
|
struct sway_container *con, struct border_colors *colors) {
|
|
|
|
|
struct sway_view *view = con->sway_view;
|
|
|
|
|
render_view_surfaces(view, output, damage);
|
|
|
|
|
render_view_surfaces(view, output, damage, view->swayc->alpha);
|
|
|
|
|
|
|
|
|
|
struct wlr_box box;
|
|
|
|
|
float output_scale = output->wlr_output->scale;
|
|
|
|
@ -810,7 +810,7 @@ static void render_output(struct sway_output *output, struct timespec *when,
|
|
|
|
|
|
|
|
|
|
// TODO: handle views smaller than the output
|
|
|
|
|
render_view_surfaces(
|
|
|
|
|
workspace->sway_workspace->fullscreen, output, damage);
|
|
|
|
|
workspace->sway_workspace->fullscreen, output, damage, 1.0f);
|
|
|
|
|
|
|
|
|
|
if (workspace->sway_workspace->fullscreen->type == SWAY_VIEW_XWAYLAND) {
|
|
|
|
|
render_unmanaged(output, damage,
|
|
|
|
|