diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-09-21 20:26:49 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-10-02 09:33:08 +0300 |
| commit | a5e285865b97c008549b60aac29c6a14b7f4f8c0 (patch) | |
| tree | 718fecf648c0fdf43439a4a01a58b3b58c1703a8 /src/layout/monitor.rs | |
| parent | d5f4e79e4c35d4f5a7a4a64e85e72fb1545ef2db (diff) | |
| download | niri-a5e285865b97c008549b60aac29c6a14b7f4f8c0.tar.gz niri-a5e285865b97c008549b60aac29c6a14b7f4f8c0.tar.bz2 niri-a5e285865b97c008549b60aac29c6a14b7f4f8c0.zip | |
Move background rendering to Workspace
Per-output background-color doesn't work yet.
Diffstat (limited to 'src/layout/monitor.rs')
| -rw-r--r-- | src/layout/monitor.rs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/layout/monitor.rs b/src/layout/monitor.rs index ec513857..54bcf9af 100644 --- a/src/layout/monitor.rs +++ b/src/layout/monitor.rs @@ -23,6 +23,7 @@ use crate::input::swipe_tracker::SwipeTracker; use crate::niri_render_elements; use crate::render_helpers::renderer::NiriRenderer; use crate::render_helpers::shadow::ShadowRenderElement; +use crate::render_helpers::solid_color::SolidColorRenderElement; use crate::render_helpers::RenderTarget; use crate::rubber_band::RubberBand; use crate::utils::transaction::Transaction; @@ -175,6 +176,7 @@ niri_render_elements! { InsertHint = CropRenderElement<InsertHintRenderElement>, UncroppedInsertHint = InsertHintRenderElement, Shadow = ShadowRenderElement, + SolidColor = SolidColorRenderElement, } } @@ -1619,6 +1621,7 @@ impl<W: LayoutElement> Monitor<W> { ) -> impl Iterator< Item = ( Rectangle<f64, Logical>, + MonitorRenderElement<R>, impl Iterator<Item = MonitorRenderElement<R>> + 'a, ), > { @@ -1692,7 +1695,7 @@ impl<W: LayoutElement> Monitor<W> { let iter = floating.chain(hint).chain(scrolling); - let iter = iter.map(move |elem| { + let scale_relocate = move |elem| { let elem = RescaleRenderElement::from_element(elem, Point::from((0, 0)), zoom); RelocateRenderElement::from_element( elem, @@ -1702,9 +1705,14 @@ impl<W: LayoutElement> Monitor<W> { geo.loc.to_physical_precise_round(scale), Relocate::Relative, ) - }); + }; + + let iter = iter.map(scale_relocate); + + let background = ws.render_background(); + let background = scale_relocate(MonitorInnerRenderElement::SolidColor(background)); - (geo, iter) + (geo, background, iter) }) } |
