╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ─────────────╮ │src/ui/Repo/Header.zig│ ╰──────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │279 if (session.data.user_id != null) { │ │280 var text_box = try wgt.TextBox.init(allocator, "settings", .{ .border_style = .single, .rounded_corners = true, .wrap_kind = .none });│ │281 errdefer text_box.deinit(allocator); │ │282 - text_box.getFocus().focusable = true; │ │282 + text_box.getFocus().mode = .all; │ │283 text_box.getFocus().kind = .{ .custom = settings_link }; │ │284 try tab_ids.put(allocator, text_box.getFocus().id, {}); │ │285 if (current_tag == .repo_settings) selected_tab = text_box.getFocus().id; │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │310 if (session.is_terminal) { │ │311 var text_box = try wgt.TextBox.init(allocator, ui.Quit.tab_label, .{ .border_style = .single, .rounded_corners = true, .wrap_kind = .none });│ │312 errdefer text_box.deinit(allocator); │ │313 - text_box.getFocus().focusable = true; │ │313 + text_box.getFocus().mode = .all; │ │314 text_box.getFocus().kind = .{ .custom = ui.Quit.tab_kind }; │ │315 try tab_ids.put(allocator, text_box.getFocus().id, {}); │ │316 try tabs_box.children.put(allocator, text_box.getFocus().id, .{ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ───────────╮ │src/ui/Repo/Refs.zig│ ╰────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │223 fn addRow(allocator: std.mem.Allocator, col: *wgt.Box(ui.Widget), label: []const u8, link: ?[]const u8) !void { │ │224 var row = try wgt.TextBox.init(allocator, label, .{ .border_style = .hidden, .rounded_corners = true, .wrap_kind = .none });│ │225 errdefer row.deinit(allocator); │ │226 - row.getFocus().focusable = true; │ │226 + row.getFocus().mode = .all; │ │227 if (link) |l| row.getFocus().kind = .{ .custom = l }; │ │228 try col.children.put(allocator, row.getFocus().id, .{ .widget = .{ .text_box = row }, .rect = null, .min_size = null }); │ │229 } │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ──────────╮ │src/ui/Settings.zig│ ╰───────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │40 // the renderer distinguishes plain clickables from buttons that │ │41 // should POST to a server route by this kind. │ │42 button.getFocus().kind = .{ .custom = "submit" }; │ │43 - button.getFocus().focusable = true; │ │43 + button.getFocus().mode = .all; │ │44 button_id = button.getFocus().id; │ │45 try box.children.put(allocator, button.getFocus().id, .{ .widget = .{ .text_box = button }, .rect = null, .min_size = null });│ │46 } │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ─────────────╮ │src/ui/User/Header.zig│ ╰──────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────╮ │51 { │ │52 var title_view = try ui.Title.View.init(allocator, &data.title);│ │53 errdefer title_view.deinit(allocator); │ │54 - title_view.getFocus().focusable = true; │ │54 + title_view.getFocus().mode = .all; │ │55 title_view.getFocus().kind = .{ .custom = "a:/" }; │ │56 // shrink the title when there is not enough space │ │57 try box.children.put(allocator, title_view.getFocus().id, .{ │ ╰────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │103 { │ │104 var text_box = try wgt.TextBox.init(allocator, "repos", .{ .border_style = .single, .rounded_corners = true, .wrap_kind = .none });│ │105 errdefer text_box.deinit(allocator); │ │106 - text_box.getFocus().focusable = true; │ │106 + text_box.getFocus().mode = .all; │ │107 text_box.getFocus().kind = .{ .custom = repos_link }; │ │108 try tab_ids.put(allocator, text_box.getFocus().id, {}); │ │109 if (std.mem.eql(u8, repos_link, selected_link)) selected_tab = text_box.getFocus().id; │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │118 { │ │119 var text_box = try wgt.TextBox.init(allocator, "forks", .{ .border_style = .single, .rounded_corners = true, .wrap_kind = .none });│ │120 errdefer text_box.deinit(allocator); │ │121 - text_box.getFocus().focusable = true; │ │121 + text_box.getFocus().mode = .all; │ │122 text_box.getFocus().kind = .{ .custom = forks_link }; │ │123 try tab_ids.put(allocator, text_box.getFocus().id, {}); │ │124 if (std.mem.eql(u8, forks_link, selected_link)) selected_tab = text_box.getFocus().id; │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │145 if (session.data.user_id != null) { │ │146 var text_box = try wgt.TextBox.init(allocator, "settings", .{ .border_style = .single, .rounded_corners = true, .wrap_kind = .none });│ │147 errdefer text_box.deinit(allocator); │ │148 - text_box.getFocus().focusable = true; │ │148 + text_box.getFocus().mode = .all; │ │149 text_box.getFocus().kind = .{ .custom = settings_link }; │ │150 try tab_ids.put(allocator, text_box.getFocus().id, {}); │ │151 if (std.mem.eql(u8, settings_link, selected_link)) selected_tab = text_box.getFocus().id; │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │175 if (session.is_terminal) { │ │176 var text_box = try wgt.TextBox.init(allocator, ui.Quit.tab_label, .{ .border_style = .single, .rounded_corners = true, .wrap_kind = .none });│ │177 errdefer text_box.deinit(allocator); │ │178 - text_box.getFocus().focusable = true; │ │178 + text_box.getFocus().mode = .all; │ │179 text_box.getFocus().kind = .{ .custom = ui.Quit.tab_kind }; │ │180 try tab_ids.put(allocator, text_box.getFocus().id, {}); │ │181 try box.children.put(allocator, text_box.getFocus().id, .{ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ────────╮ │src/ui/widget.zig│ ╰─────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │109 var back = try wgt.TextBox.init(allocator, "←", .{ .border_style = .hidden, .wrap_kind = .none });│ │110 errdefer back.deinit(allocator); │ │111 back.getFocus().kind = .{ .custom = back_kind }; │ │112 + back.getFocus().mode = .mouse; │ │113 try box.children.put(allocator, back.getFocus().id, .{ │ │114 .widget = .{ .text_box = back }, │ │115 .rect = null, │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯