From e774ea17741c15275a6e86b1ed97c89d148c6024 Mon Sep 17 00:00:00 2001 From: ellieplayswow <164806095+ellieplayswow@users.noreply.github.com> Date: Tue, 18 Feb 2025 13:32:54 +0000 Subject: [PATCH] Fixing issue where swapping between list & grid view 'desync' the virtual cursor --- src/tab.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/tab.rs b/src/tab.rs index 5e6fdcf..255582f 100644 --- a/src/tab.rs +++ b/src/tab.rs @@ -2298,7 +2298,20 @@ impl Tab { } } Message::MouseAreaResized(_size, viewport) => { - self.viewport_rect = Some(viewport); + // if we have a scroll position, we want to subtract it from the viewport + // so that we don't desync when swapping + if let Some(scroll_pos) = self.scroll_opt { + self.viewport_rect = Some(Rectangle { + x: viewport.x - scroll_pos.x, + y: viewport.y - scroll_pos.y, + width: viewport.width, + height: viewport.height + }); + } + else { + self.viewport_rect = Some(viewport); + } + } Message::DragEnd(_) => { self.clicked = None;