diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-03-24 08:30:26 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-03-24 08:30:26 +0400 |
| commit | 8b4a9d68e0ba8093e88d20f3a003f78ef27cac0e (patch) | |
| tree | b09c2b2d0237f36b36d01d6fc47657d8497d1c61 /src/layout | |
| parent | a16a0f0e52d6df8abd602baa15cee44e0656d790 (diff) | |
| download | niri-8b4a9d68e0ba8093e88d20f3a003f78ef27cac0e.tar.gz niri-8b4a9d68e0ba8093e88d20f3a003f78ef27cac0e.tar.bz2 niri-8b4a9d68e0ba8093e88d20f3a003f78ef27cac0e.zip | |
Implement opacity window rule
Diffstat (limited to 'src/layout')
| -rw-r--r-- | src/layout/mod.rs | 2 | ||||
| -rw-r--r-- | src/layout/tile.rs | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/layout/mod.rs b/src/layout/mod.rs index bc5c8dcf..bbca41c9 100644 --- a/src/layout/mod.rs +++ b/src/layout/mod.rs @@ -95,6 +95,7 @@ pub trait LayoutElement { renderer: &mut R, location: Point<i32, Logical>, scale: Scale<f64>, + alpha: f32, ) -> Vec<LayoutElementRenderElement<R>>; fn request_size(&self, size: Size<i32, Logical>); @@ -1856,6 +1857,7 @@ mod tests { _renderer: &mut R, _location: Point<i32, Logical>, _scale: Scale<f64>, + _alpha: f32, ) -> Vec<LayoutElementRenderElement<R>> { vec![] } diff --git a/src/layout/tile.rs b/src/layout/tile.rs index 0609583e..faa17840 100644 --- a/src/layout/tile.rs +++ b/src/layout/tile.rs @@ -325,9 +325,15 @@ impl<W: LayoutElement> Tile<W> { view_size: Size<i32, Logical>, focus_ring: bool, ) -> impl Iterator<Item = TileRenderElement<R>> { + let alpha = if self.is_fullscreen { + 1. + } else { + self.window.rules().opacity.unwrap_or(1.).clamp(0., 1.) + }; + let rv = self .window - .render(renderer, location + self.window_loc(), scale) + .render(renderer, location + self.window_loc(), scale, alpha) .into_iter() .map(Into::into); |
