╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ───────────────╮ │src/ui/widget/thread.zig│ ╰────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────╮ │1579 return; │ │1580 } │ │1581 switch (key) { │ │1585 - .enter, .arrow_right => self.focusDetail(index, root_focus),│ │1582 + .enter, .arrow_right => _ = self.focusDetail(root_focus), │ │1583 else => {}, │ │1584 } │ │1585 } │ ╰──────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ │2499 self.detailScroll(index).scrollToRect(rect); │ │2500 } │ │2501 │ │2505 - // enter the detail pane. an empty pane can't be entered. │ │2506 - fn focusDetail(self: *This, index: usize, root_focus: *Focus) void { │ │2507 - if (self.detailInner(index).children.count() == 0) return; │ │2508 - root_focus.setFocus(self.detailOuter(index).getFocus().id); │ │2502 + // enter the detail at its first focusable widget below the tool row. │ │2503 + pub fn focusDetail(self: *This, root_focus: *Focus) bool { │ │2504 + const index = self.selectedSplitIndex() orelse return false; │ │2505 + for (tool_row_index + 1..self.detailInner(index).children.count()) |child_index| {│ │2506 + if (!self.detailChildFocusable(index, child_index)) continue; │ │2507 + self.focusDetailChild(index, child_index, false, root_focus); │ │2508 + return true; │ │2509 + } │ │2510 + return false; │ │2511 } │ │2512 │ │2513 // return to the list. │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯