╭─────────────╮ │scroll to top│ ╰─────────────╯ ╭ thread.zig ───────────────────────────────────────────────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────────────────────────────────────────────────╯
╭────╮ ╭ clone ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╮ │http│ ssh │ │ ╰────╯ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╯
2651 2652 // return to the list. 2653 fn focusList(self: *This, index: usize, root_focus: *Focus) void { 2654 root_focus.setFocus(self.listScroll(index).getFocus().id); 2655 } 2656 2657 // cross to the header tabs above the stack. 2658 fn focusHeader(self: *This, root_focus: *Focus) void { 2659 root_focus.setFocus(self.box.children.keys()[header_index]); 2660 } 2661 2662 pub fn clearGrid(self: *This) void { 2663 self.box.clearGrid(); 2664 } 2665 2666 pub fn getGrid(self: This) ?Grid { 2667 return self.box.getGrid(); 2668 } 2669 2670 pub fn getFocus(self: *This) *Focus { 2671 return self.box.getFocus(); 2672 } 2673 2674 // for the parent's "scroll up at the top jumps to the header" check: at the 2675 // top only while the header tabs hold focus, so up from the split 2676 // crosses into the tabs first. 2677 pub fn getSelectedIndex(self: *This) ?usize { 2678 return if (self.headerActive()) 0 else 1; 2679 } 2680 }; 2681 } 2682