aboutsummaryrefslogtreecommitdiff
path: root/src/layout/workspace.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-02-04 22:52:11 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-02-04 22:52:11 +0400
commit57521c69c3a406789f38d8aa672b0bc15c947819 (patch)
tree64e22533709d443ba2c77282ba9823d48cc87e2d /src/layout/workspace.rs
parentda826e42aaaa6dc559db67f4708db8bc23754f46 (diff)
downloadniri-57521c69c3a406789f38d8aa672b0bc15c947819.tar.gz
niri-57521c69c3a406789f38d8aa672b0bc15c947819.tar.bz2
niri-57521c69c3a406789f38d8aa672b0bc15c947819.zip
layout: Add TileRenderElement
Diffstat (limited to 'src/layout/workspace.rs')
-rw-r--r--src/layout/workspace.rs14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs
index 900175a1..f9f786a9 100644
--- a/src/layout/workspace.rs
+++ b/src/layout/workspace.rs
@@ -5,7 +5,6 @@ use std::rc::Rc;
use std::time::Duration;
use niri_config::{CenterFocusedColumn, PresetWidth, SizeChange, Struts};
-use smithay::backend::renderer::element::utils::RelocateRenderElement;
use smithay::backend::renderer::{ImportAll, Renderer};
use smithay::desktop::space::SpaceElement;
use smithay::desktop::{layer_map_for_output, Window};
@@ -15,8 +14,8 @@ use smithay::render_elements;
use smithay::utils::{Logical, Point, Rectangle, Scale, Size};
use super::focus_ring::{FocusRing, FocusRingRenderElement};
-use super::tile::Tile;
-use super::{LayoutElement, LayoutElementRenderElement, Options};
+use super::tile::{Tile, TileRenderElement};
+use super::{LayoutElement, Options};
use crate::animation::Animation;
use crate::utils::output_size;
@@ -82,9 +81,8 @@ pub struct OutputId(String);
render_elements! {
#[derive(Debug)]
pub WorkspaceRenderElement<R> where R: ImportAll;
- LayoutElement = LayoutElementRenderElement<R>,
+ Tile = TileRenderElement<R>,
FocusRing = FocusRingRenderElement,
- Border = RelocateRenderElement<FocusRingRenderElement>,
}
/// Width of a column.
@@ -1095,7 +1093,11 @@ impl<W: LayoutElement> Workspace<W> {
self.with_tiles_in_render_order(|tile, tile_pos| {
// Draw the window itself.
- rv.extend(tile.render(renderer, tile_pos, output_scale));
+ rv.extend(
+ tile.render(renderer, tile_pos, output_scale)
+ .into_iter()
+ .map(Into::into),
+ );
// For the active tile (which comes first), draw the focus ring.
if first {