aboutsummaryrefslogtreecommitdiff
path: root/src/layout/monitor.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-03-24 09:03:59 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-03-24 10:22:56 +0400
commit493c8dc89072a746795d4e7b94363cfef3e0ee89 (patch)
tree31a384a6272a876d95e271e186e08a92ed88092c /src/layout/monitor.rs
parent8b4a9d68e0ba8093e88d20f3a003f78ef27cac0e (diff)
downloadniri-493c8dc89072a746795d4e7b94363cfef3e0ee89.tar.gz
niri-493c8dc89072a746795d4e7b94363cfef3e0ee89.tar.bz2
niri-493c8dc89072a746795d4e7b94363cfef3e0ee89.zip
Implement block-out-from window rule, fix alpha on window screenshots
Diffstat (limited to 'src/layout/monitor.rs')
-rw-r--r--src/layout/monitor.rs9
1 files changed, 6 insertions, 3 deletions
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<W: LayoutElement> Monitor<W> {
pub fn render_elements<R: NiriRenderer>(
&self,
renderer: &mut R,
+ target: RenderTarget,
) -> Vec<MonitorRenderElement<R>> {
let _span = tracy_client::span!("Monitor::render_elements");
@@ -722,7 +724,7 @@ impl<W: LayoutElement> Monitor<W> {
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<W: LayoutElement> Monitor<W> {
};
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<W: LayoutElement> Monitor<W> {
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| {