╭ changed ────────────╮ │src/ui/Repo/Files.zig│ ╰─────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────╮ │633 // directory (or "..") row are turned into navigation by the host │ │634 // (crossPageLink) before reaching here. │ │635 if (inp.rowDelta(key, @intCast(self.listBox().children.count()))) |delta| {│ │636 - return self.moveSelection(root_focus, delta); │ │636 + ui.moveRowFocus(self.listBox(), self.listScroll(), root_focus, delta); │ │637 + return; │ │638 } │ │639 switch (key) { │ │640 .enter, .arrow_right => try self.focusDetail(root_focus), │ ╰────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────╮ │661 if (on_content) { │ │662 if (sc.x > 0) { │ │663 sc.x -= 1; │ │663 - self.clampDetailScroll(); │ │664 + ui.clampScroll(self.detailScroll());│ │665 } else try self.focusList(root_focus); │ │666 } else if (!self.moveNav(root_focus, -1)) { │ │667 try self.focusList(root_focus); │ ╰─────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────╮ │670 .arrow_right => { │ │671 if (on_content) { │ │672 sc.x += 1; │ │672 - self.clampDetailScroll(); │ │673 + ui.clampScroll(self.detailScroll());│ │674 } else _ = self.moveNav(root_focus, 1); │ │675 }, │ │676 .arrow_up => { │ ╰─────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────╮ │677 if (on_content) { │ │678 if (self.session.is_terminal and sc.y > 0) { │ │679 sc.y -= 1; │ │679 - self.clampDetailScroll(); │ │680 + ui.clampScroll(self.detailScroll()); │ │681 } else self.focusNav(root_focus); // cross up to the links│ │682 } │ │683 }, │ ╰───────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────╮ │685 if (on_content) { │ │686 if (self.session.is_terminal) { │ │687 sc.y += 1; │ │687 - self.clampDetailScroll(); │ │688 + ui.clampScroll(self.detailScroll()); │ │689 } │ │690 } else self.focusContent(root_focus); // links -> content│ │691 }, │ ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────╮ │692 .page_up => if (on_content and self.session.is_terminal) { │ │693 sc.y -= 10; │ │693 - self.clampDetailScroll(); │ │694 + ui.clampScroll(self.detailScroll()); │ │695 }, │ │696 .page_down => if (on_content and self.session.is_terminal) {│ │697 sc.y += 10; │ ╰─────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────╮ │697 - self.clampDetailScroll(); │ │698 + ui.clampScroll(self.detailScroll()); │ │699 }, │ │700 .home => if (on_content and self.session.is_terminal) {│ │701 sc.y = 0; │ ╰────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────╮ │701 - self.clampDetailScroll(); │ │702 + ui.clampScroll(self.detailScroll()); │ │703 }, │ │704 .end => if (on_content and self.session.is_terminal) {│ │705 sc.y = std.math.maxInt(isize); │ ╰───────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────╮ │705 - self.clampDetailScroll(); │ │706 + ui.clampScroll(self.detailScroll()); │ │707 }, │ │708 .mouse => |mouse| switch (mouse.action) { │ │709 .scroll => |dir| if (on_content and self.session.is_terminal) {│ ╰────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────╮ │710 sc.y += if (dir == .up) -5 else 5; │ │710 - self.clampDetailScroll(); │ │711 + ui.clampScroll(self.detailScroll());│ │712 }, │ │713 else => {}, │ │714 }, │ ╰─────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯