╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ──────────────╮ │src/ui/Repo/Threads.zig│ ╰───────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │2552 return outer.children.getIndex(cid) == tool_row_index; │ │2553 } │ │2554 │ │2638 - fn focusTag(self: *This, index: usize, tf: *ui.TagFlow, root_focus: *Focus, item: usize) void { │ │2555 + fn focusTag(self: *This, index: usize, child_index: usize, tf: *ui.TagFlow, root_focus: *Focus, item: usize) void {│ │2556 root_focus.setFocus(tf.text_boxes.items[item].getFocus().id); │ │2557 // keep the tag visible on the terminal: its rect offset by the flow's │ │2558 // position in the pane. │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │2559 if (self.session.is_terminal and item < tf.rects.items.len) { │ │2643 - if (self.detailInner(index).children.values()[tags_child_index].rect) |flow_rect| {│ │2560 + if (self.detailInner(index).children.values()[child_index].rect) |flow_rect| { │ │2561 var rect = tf.rects.items[item]; │ │2562 rect.x += flow_rect.x; │ │2563 rect.y += flow_rect.y; │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │2564 self.detailScroll(index).scrollToRect(rect); │ │2565 } │ │2566 } │ │2650 - } │ │2651 - │ │2652 - fn titleFocused(self: *This, index: usize) bool { │ │2653 - const inner = self.detailInner(index); │ │2654 - const cid = inner.getFocus().child_id orelse return false; │ │2655 - return inner.children.getIndex(cid) == title_child_index; │ │2567 } │ │2568 │ │2658 - fn authorFocused(self: *This, index: usize) bool { │ │2659 - const inner = self.detailInner(index); │ │2660 - const cid = inner.getFocus().child_id orelse return false; │ │2661 - return cid == self.author_id[index]; │ │2662 - } │ │2663 - │ │2664 - fn descriptionFocused(self: *This, index: usize) bool { │ │2665 - const cid = self.detailInner(index).getFocus().child_id orelse return false;│ │2666 - return cid == self.description_id[index]; │ │2667 - } │ │2668 - │ │2569 // return to the tool row's last-focused button (the header when the │ │2570 // description page shows no row). │ │2571 fn focusToolRow(self: *This, index: usize, root_focus: *Focus) void { │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────╮ │2573 root_focus.setFocus(cid); │ │2574 } │ │2575 │ │2676 - // enter the detail pane. an empty pane (no issues) can't be entered.│ │2677 - fn focusDetail(self: *This, index: usize, root_focus: *Focus) !void {│ │2576 + // enter the detail pane. an empty pane can't be entered. │ │2577 + fn focusDetail(self: *This, index: usize, root_focus: *Focus) void { │ │2578 if (self.detailInner(index).children.count() == 0) return; │ │2579 root_focus.setFocus(self.detailOuter(index).getFocus().id); │ │2580 } │ ╰───────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────╮ │2581 │ │2582 // return to the list. │ │2683 - fn focusList(self: *This, index: usize, root_focus: *Focus) !void {│ │2583 + fn focusList(self: *This, index: usize, root_focus: *Focus) void { │ │2584 root_focus.setFocus(self.listScroll(index).getFocus().id); │ │2585 } │ │2586 │ ╰─────────────────────────────────────────────────────────────────────────────────╯