diff options
Diffstat (limited to 'src/layout')
| -rw-r--r-- | src/layout/mod.rs | 6 | ||||
| -rw-r--r-- | src/layout/monitor.rs | 3 | ||||
| -rw-r--r-- | src/layout/tile.rs | 9 | ||||
| -rw-r--r-- | src/layout/workspace.rs | 3 |
4 files changed, 16 insertions, 5 deletions
diff --git a/src/layout/mod.rs b/src/layout/mod.rs index 7c381358..c4bcc61f 100644 --- a/src/layout/mod.rs +++ b/src/layout/mod.rs @@ -158,6 +158,7 @@ pub struct Options { pub preset_widths: Vec<ColumnWidth>, /// Initial width for new columns. pub default_width: Option<ColumnWidth>, + pub animations: niri_config::Animations, } impl Default for Options { @@ -174,6 +175,7 @@ impl Default for Options { ColumnWidth::Proportion(2. / 3.), ], default_width: None, + animations: Default::default(), } } } @@ -209,6 +211,7 @@ impl Options { center_focused_column: layout.center_focused_column, preset_widths, default_width, + animations: config.animations, } } } @@ -1577,7 +1580,8 @@ impl<W: LayoutElement> Layout<W> { monitor.workspace_switch = Some(WorkspaceSwitch::Animation(Animation::new( current_idx, idx as f64, - 250, + self.options.animations.workspace_switch, + niri_config::Animation::default_workspace_switch(), ))); return Some(monitor.output.clone()); diff --git a/src/layout/monitor.rs b/src/layout/monitor.rs index accce645..e67f5bf2 100644 --- a/src/layout/monitor.rs +++ b/src/layout/monitor.rs @@ -96,7 +96,8 @@ impl<W: LayoutElement> Monitor<W> { self.workspace_switch = Some(WorkspaceSwitch::Animation(Animation::new( current_idx, idx as f64, - 250, + self.options.animations.workspace_switch, + niri_config::Animation::default_workspace_switch(), ))); } diff --git a/src/layout/tile.rs b/src/layout/tile.rs index be96f6e6..62f79a77 100644 --- a/src/layout/tile.rs +++ b/src/layout/tile.rs @@ -11,7 +11,7 @@ use smithay::utils::{Logical, Point, Rectangle, Scale, Size}; use super::focus_ring::FocusRing; use super::{LayoutElement, LayoutElementRenderElement, Options}; -use crate::animation::{Animation, Curve}; +use crate::animation::Animation; use crate::niri_render_elements; use crate::render_helpers::offscreen::OffscreenRenderElement; use crate::render_helpers::renderer::NiriRenderer; @@ -114,7 +114,12 @@ impl<W: LayoutElement> Tile<W> { } pub fn start_open_animation(&mut self) { - self.open_animation = Some(Animation::new(0., 1., 150).with_curve(Curve::EaseOutExpo)); + self.open_animation = Some(Animation::new( + 0., + 1., + self.options.animations.window_open, + niri_config::Animation::default_window_open(), + )); } pub fn window(&self) -> &W { diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs index 9165d7e0..0e576b7a 100644 --- a/src/layout/workspace.rs +++ b/src/layout/workspace.rs @@ -401,7 +401,8 @@ impl<W: LayoutElement> Workspace<W> { self.view_offset_anim = Some(Animation::new( self.view_offset as f64, new_view_offset as f64, - 250, + self.options.animations.horizontal_view_movement, + niri_config::Animation::default_horizontal_view_movement(), )); } |
