Compare commits
2 commits
master
...
clipping_f
Author | SHA1 | Date | |
---|---|---|---|
|
684926a77b | ||
|
6a016714f2 |
1 changed files with 9 additions and 14 deletions
|
@ -675,8 +675,8 @@ void render_box_shadow(struct sway_output *output, pixman_region32_t *output_dam
|
||||||
|
|
||||||
struct wlr_box box;
|
struct wlr_box box;
|
||||||
memcpy(&box, _box, sizeof(struct wlr_box));
|
memcpy(&box, _box, sizeof(struct wlr_box));
|
||||||
box.x -= output->lx * wlr_output->scale + blur_sigma;
|
box.x -= blur_sigma;
|
||||||
box.y -= output->ly * wlr_output->scale + blur_sigma;
|
box.y -= blur_sigma;
|
||||||
box.width += 2 * blur_sigma;
|
box.width += 2 * blur_sigma;
|
||||||
box.height += 2 * blur_sigma;
|
box.height += 2 * blur_sigma;
|
||||||
|
|
||||||
|
@ -875,15 +875,13 @@ static void render_view(struct sway_output *output, pixman_region32_t *damage,
|
||||||
|
|
||||||
// render shadow
|
// render shadow
|
||||||
if (con->shadow_enabled && config->shadow_blur_sigma > 0 && config->shadow_color[3] > 0.0) {
|
if (con->shadow_enabled && config->shadow_blur_sigma > 0 && config->shadow_color[3] > 0.0) {
|
||||||
box.x = floor(state->x);
|
box.x = floor(state->x) - output->lx;
|
||||||
box.y = floor(state->y);
|
box.y = floor(state->y) - output->ly;
|
||||||
box.width = state->width;
|
box.width = state->width;
|
||||||
box.height = state->height;
|
box.height = state->height;
|
||||||
scale_box(&box, output_scale);
|
scale_box(&box, output_scale);
|
||||||
int corner_radius = config->smart_corner_radius &&
|
int scaled_corner_radius = deco_data.corner_radius == 0 ?
|
||||||
output->current.active_workspace->current_gaps.top == 0
|
0 : (deco_data.corner_radius + state->border_thickness) * output_scale;
|
||||||
? 0 : con->corner_radius;
|
|
||||||
int scaled_corner_radius = (corner_radius + state->border_thickness) * output_scale;
|
|
||||||
render_box_shadow(output, damage, &box, config->shadow_color, config->shadow_blur_sigma,
|
render_box_shadow(output, damage, &box, config->shadow_color, config->shadow_blur_sigma,
|
||||||
scaled_corner_radius);
|
scaled_corner_radius);
|
||||||
}
|
}
|
||||||
|
@ -1778,21 +1776,18 @@ struct find_effect_iter_data {
|
||||||
|
|
||||||
static bool find_con_effect_iterator(struct sway_container *con, void* _data) {
|
static bool find_con_effect_iterator(struct sway_container *con, void* _data) {
|
||||||
struct sway_view *view = con->view;
|
struct sway_view *view = con->view;
|
||||||
struct find_effect_iter_data *data = _data;
|
|
||||||
struct workspace_effect_info *effect_info = data->effect_info;
|
|
||||||
|
|
||||||
if (!view) {
|
if (!view) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct find_effect_iter_data *data = _data;
|
||||||
|
struct workspace_effect_info *effect_info = data->effect_info;
|
||||||
if (con->blur_enabled && !view->surface->opaque) {
|
if (con->blur_enabled && !view->surface->opaque) {
|
||||||
effect_info->container_wants_blur = true;
|
effect_info->container_wants_blur = true;
|
||||||
|
|
||||||
bool is_floating = container_is_floating(con);
|
bool is_floating = container_is_floating(con);
|
||||||
// Check if we should render optimized blur
|
// Check if we should render optimized blur
|
||||||
if (data->blur_buffer_dirty
|
if (data->blur_buffer_dirty && (!is_floating || config->blur_xray)) {
|
||||||
// Only test floating windows when xray is enabled
|
|
||||||
&& (!is_floating || (is_floating && config->blur_xray))) {
|
|
||||||
effect_info->should_render_optimized_blur = true;
|
effect_info->should_render_optimized_blur = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue