From e3101ced70b908d4fc9bceef47e878d2de2b4c5d Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Tue, 12 Aug 2025 22:34:13 +0300 Subject: layout: Offset Y animations for non-animated resizes --- src/layout/tile.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/layout/tile.rs') diff --git a/src/layout/tile.rs b/src/layout/tile.rs index dea2a773..a4fe8a57 100644 --- a/src/layout/tile.rs +++ b/src/layout/tile.rs @@ -485,6 +485,17 @@ impl Tile { }); } + pub fn offset_move_y_anim_current(&mut self, offset: f64) { + if let Some(move_) = self.move_y_animation.as_mut() { + // If the anim is almost done, there's little point trying to offset it; we can let + // things jump. If it turns out like a bad idea, we could restart the anim intead. + let value = move_.anim.value(); + if value > 0.001 { + move_.from += offset / value; + } + } + } + pub fn stop_move_animations(&mut self) { self.move_x_animation = None; self.move_y_animation = None; -- cgit