diff options
Diffstat (limited to 'src/layout')
| -rw-r--r-- | src/layout/focus_ring.rs | 10 | ||||
| -rw-r--r-- | src/layout/insert_hint_element.rs | 2 | ||||
| -rw-r--r-- | src/layout/shadow.rs | 3 | ||||
| -rw-r--r-- | src/layout/tile.rs | 4 |
4 files changed, 16 insertions, 3 deletions
diff --git a/src/layout/focus_ring.rs b/src/layout/focus_ring.rs index 3d97cb02..411a73a5 100644 --- a/src/layout/focus_ring.rs +++ b/src/layout/focus_ring.rs @@ -2,7 +2,7 @@ use std::iter::zip; use arrayvec::ArrayVec; use niri_config::{CornerRadius, Gradient, GradientRelativeTo}; -use smithay::backend::renderer::element::Kind; +use smithay::backend::renderer::element::{Element as _, Kind}; use smithay::utils::{Logical, Point, Rectangle, Size}; use crate::niri_render_elements; @@ -53,6 +53,7 @@ impl FocusRing { } } + #[allow(clippy::too_many_arguments)] pub fn update_render_elements( &mut self, win_size: Size<f64, Logical>, @@ -61,6 +62,7 @@ impl FocusRing { view_rect: Rectangle<f64, Logical>, radius: CornerRadius, scale: f64, + alpha: f32, ) { let width = self.config.width.0; self.full_size = win_size + Size::from((width, width)).upscale(2.); @@ -181,6 +183,7 @@ impl FocusRing { rounded_corner_border_width, radius, scale as f32, + alpha, ); } } else { @@ -199,6 +202,7 @@ impl FocusRing { rounded_corner_border_width, radius, scale as f32, + alpha, ); } @@ -229,7 +233,9 @@ impl FocusRing { let elem = if self.use_border_shader && has_border_shader { border.clone().with_location(location).into() } else { - SolidColorRenderElement::from_buffer(buffer, location, 1., Kind::Unspecified).into() + let alpha = border.alpha(); + SolidColorRenderElement::from_buffer(buffer, location, alpha, Kind::Unspecified) + .into() }; rv.push(elem); }; diff --git a/src/layout/insert_hint_element.rs b/src/layout/insert_hint_element.rs index 5f70295c..89dfcd14 100644 --- a/src/layout/insert_hint_element.rs +++ b/src/layout/insert_hint_element.rs @@ -48,7 +48,7 @@ impl InsertHintElement { scale: f64, ) { self.inner - .update_render_elements(size, true, false, view_rect, radius, scale); + .update_render_elements(size, true, false, view_rect, radius, scale, 1.); } pub fn render( diff --git a/src/layout/shadow.rs b/src/layout/shadow.rs index 3e0605c4..d91986d1 100644 --- a/src/layout/shadow.rs +++ b/src/layout/shadow.rs @@ -38,6 +38,7 @@ impl Shadow { is_active: bool, radius: CornerRadius, scale: f64, + alpha: f32, ) { let ceil = |logical: f64| (logical * scale).ceil() / scale; @@ -129,6 +130,7 @@ impl Shadow { scale as f32, Rectangle::new(window_geo.loc - offset - rect.loc, window_geo.size), win_radius, + alpha, ); rect.loc += offset; @@ -147,6 +149,7 @@ impl Shadow { scale as f32, Rectangle::zero(), Default::default(), + alpha, ); self.shader_rects[0].loc += offset; diff --git a/src/layout/tile.rs b/src/layout/tile.rs index b8d049b0..ad3f7ff9 100644 --- a/src/layout/tile.rs +++ b/src/layout/tile.rs @@ -336,6 +336,7 @@ impl<W: LayoutElement> Tile<W> { ), radius, self.scale, + 1., ); let radius = if self.is_fullscreen { @@ -350,6 +351,7 @@ impl<W: LayoutElement> Tile<W> { is_active, radius, self.scale, + 1., ); let draw_focus_ring_with_background = if self.effective_border_width().is_some() { @@ -365,6 +367,7 @@ impl<W: LayoutElement> Tile<W> { view_rect, radius, self.scale, + 1., ); } @@ -880,6 +883,7 @@ impl<W: LayoutElement> Tile<W> { 0., radius, scale.x as f32, + 1., ) .with_location(geo.loc) .into(); |
