aboutsummaryrefslogtreecommitdiff
path: root/src/layout/workspace.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-03-05 13:32:30 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-03-05 13:32:52 +0400
commitae89b2e514fd4c22a38c2dce258707c369ca944a (patch)
tree743448567dbc92843b46fc677b39336df3406a58 /src/layout/workspace.rs
parent732f7f6f33595924654d23a380cc2a48bf9f3257 (diff)
downloadniri-ae89b2e514fd4c22a38c2dce258707c369ca944a.tar.gz
niri-ae89b2e514fd4c22a38c2dce258707c369ca944a.tar.bz2
niri-ae89b2e514fd4c22a38c2dce258707c369ca944a.zip
Implement spring animations
Diffstat (limited to 'src/layout/workspace.rs')
-rw-r--r--src/layout/workspace.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs
index 5475862c..ac31cdfb 100644
--- a/src/layout/workspace.rs
+++ b/src/layout/workspace.rs
@@ -436,9 +436,11 @@ impl<W: LayoutElement> Workspace<W> {
return;
}
+ // FIXME: also compute and use current velocity.
self.view_offset_adj = Some(ViewOffsetAdjustment::Animation(Animation::new(
self.view_offset as f64,
new_view_offset as f64,
+ 0.,
self.options.animations.horizontal_view_movement,
niri_config::Animation::default_horizontal_view_movement(),
)));
@@ -1272,6 +1274,7 @@ impl<W: LayoutElement> Workspace<W> {
// effort and bug potential.
let norm_factor = self.working_area.size.w as f64 / VIEW_GESTURE_WORKING_AREA_MOVEMENT;
+ let velocity = gesture.tracker.velocity() * norm_factor;
let pos = gesture.tracker.pos() * norm_factor;
let current_view_offset = pos + gesture.delta_from_tracker;
@@ -1420,6 +1423,7 @@ impl<W: LayoutElement> Workspace<W> {
self.view_offset_adj = Some(ViewOffsetAdjustment::Animation(Animation::new(
current_view_offset + delta,
target_view_offset as f64,
+ velocity,
self.options.animations.horizontal_view_movement,
niri_config::Animation::default_horizontal_view_movement(),
)));