From 493c8dc89072a746795d4e7b94363cfef3e0ee89 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Sun, 24 Mar 2024 09:03:59 +0400 Subject: Implement block-out-from window rule, fix alpha on window screenshots --- src/layout/monitor.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/layout/monitor.rs') diff --git a/src/layout/monitor.rs b/src/layout/monitor.rs index fbea52cd..6e8cb36d 100644 --- a/src/layout/monitor.rs +++ b/src/layout/monitor.rs @@ -16,6 +16,7 @@ use super::workspace::{ use super::{LayoutElement, Options}; use crate::animation::Animation; use crate::render_helpers::renderer::NiriRenderer; +use crate::render_helpers::RenderTarget; use crate::rubber_band::RubberBand; use crate::swipe_tracker::SwipeTracker; use crate::utils::output_size; @@ -700,6 +701,7 @@ impl Monitor { pub fn render_elements( &self, renderer: &mut R, + target: RenderTarget, ) -> Vec> { let _span = tracy_client::span!("Monitor::render_elements"); @@ -722,7 +724,7 @@ impl Monitor { let after_idx = after_idx as usize; let after = if after_idx < self.workspaces.len() { - let after = self.workspaces[after_idx].render_elements(renderer); + let after = self.workspaces[after_idx].render_elements(renderer, target); let after = after.into_iter().filter_map(|elem| { Some(RelocateRenderElement::from_element( CropRenderElement::from_element( @@ -752,7 +754,7 @@ impl Monitor { }; let before_idx = before_idx as usize; - let before = self.workspaces[before_idx].render_elements(renderer); + let before = self.workspaces[before_idx].render_elements(renderer, target); let before = before.into_iter().filter_map(|elem| { Some(RelocateRenderElement::from_element( CropRenderElement::from_element( @@ -770,7 +772,8 @@ impl Monitor { before.chain(after.into_iter().flatten()).collect() } None => { - let elements = self.workspaces[self.active_workspace_idx].render_elements(renderer); + let elements = + self.workspaces[self.active_workspace_idx].render_elements(renderer, target); elements .into_iter() .filter_map(|elem| { -- cgit