╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ──────╮ │src/ui/Fork.zig│ ╰───────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │226 try stack.children.put(allocator, new_user.getFocus().id, .{ .new_user = new_user });│ │227 } │ │228 if (session.data.host_kind == .server) { │ │229 - var user_view = try ui.UserLogout.initView(allocator, session); │ │229 + var user_view = try ui.UserSettings.initView(allocator, session); │ │230 errdefer user_view.deinit(allocator); │ │231 try stack.children.put(allocator, user_view.getFocus().id, user_view); │ │232 } │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ─────────────╮ │src/ui/Fork/Header.zig│ ╰──────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │161 } │ │162 │ │163 if (session.data.host_kind == .server) { │ │164 - const label = ui.UserLogout.tabLabel(session); │ │164 + const label = ui.UserSettings.tabLabel(session); │ │165 var user_tab = try wgt.TextBox.init(allocator, label, .{ .border = .single, .round_corners = true, .wrap_kind = .none });│ │166 errdefer user_tab.deinit(allocator); │ │167 user_tab.getFocus().mode = .all; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ──────╮ │src/ui/Home.zig│ ╰───────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────╮ │85 } │ │86 │ │87 { │ │88 - var user_view = try ui.UserLogout.initView(allocator, session); │ │88 + var user_view = try ui.UserSettings.initView(allocator, session); │ │89 errdefer user_view.deinit(allocator); │ │90 try stack.children.put(allocator, user_view.getFocus().id, user_view);│ │91 } │ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ─────────────╮ │src/ui/Home/Header.zig│ ╰──────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │174 │ │175 // user tab │ │176 { │ │177 - const label = ui.UserLogout.tabLabel(session); │ │177 + const label = ui.UserSettings.tabLabel(session); │ │178 var text_box = try wgt.TextBox.init(allocator, label, .{ .border = .single, .round_corners = true, .wrap_kind = .none });│ │179 errdefer text_box.deinit(allocator); │ │180 text_box.getFocus().mode = .all; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ──────╮ │src/ui/Repo.zig│ ╰───────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────╮ │505 } │ │506 │ │507 if (session.data.host_kind == .server) { │ │508 - var user_view = try ui.UserLogout.initView(allocator, session); │ │508 + var user_view = try ui.UserSettings.initView(allocator, session); │ │509 errdefer user_view.deinit(allocator); │ │510 try stack.children.put(allocator, user_view.getFocus().id, user_view);│ │511 } │ ╰───────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ─────────────╮ │src/ui/Repo/Header.zig│ ╰──────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │356 │ │357 // user tab. local mode has no users, so it has none. │ │358 if (session.data.host_kind == .server) { │ │359 - const label = ui.UserLogout.tabLabel(session); │ │359 + const label = ui.UserSettings.tabLabel(session); │ │360 var text_box = try wgt.TextBox.init(allocator, label, .{ .border = .single, .round_corners = true, .wrap_kind = .none });│ │361 errdefer text_box.deinit(allocator); │ │362 text_box.getFocus().mode = .all; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ───────────────╮ │src/ui/Repo/Settings.zig│ ╰────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │177 if (self.formBox().children.values()[next].widget != .text_box) break; │ │178 } │ │179 root_focus.setFocus(keys[next]); │ │180 - if (self.session.is_terminal) self.scrollToChild(next); │ │180 + if (self.session.is_terminal) if (self.formBox().children.values()[next].rect) |rect| ui.widget.scrollToCenteredRect(&self.scroll, rect);│ │181 return; │ │182 } │ │183 switch (key) { │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────╮ │190 try child.widget.input(allocator, key, root_focus); │ │191 } │ │192 │ │193 - // keep the form child at `index` in view, its rect shifted by the centering │ │194 - fn scrollToChild(self: *View, index: usize) void { │ │195 - const rect = self.formBox().children.values()[index].rect orelse return; │ │196 - const center_grid = self.scroll.child.center.getGrid() orelse return; │ │197 - const form_grid = self.formBox().getGrid() orelse return; │ │198 - const offset_y: isize = @intCast((center_grid.size.height -| form_grid.size.height) / 2);│ │199 - self.scroll.scrollToRect(.{ .x = rect.x, .y = rect.y + offset_y, .size = rect.size }); │ │200 - } │ │201 - │ │193 fn formRadio(form: *wgt.Box(ui.Widget), name: []const u8) !*ui.widget.Radio { │ │194 for (form.children.values()) |*child| switch (child.widget) { │ │195 .radio => |*radio| if (std.mem.eql(u8, radio.name, name)) return radio, │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ──────╮ │src/ui/User.zig│ ╰───────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────╮ │246 } │ │247 │ │248 { │ │249 - var user_view = try ui.UserLogout.initView(allocator, session); │ │249 + var user_view = try ui.UserSettings.initView(allocator, session); │ │250 errdefer user_view.deinit(allocator); │ │251 try stack.children.put(allocator, user_view.getFocus().id, user_view);│ │252 } │ ╰───────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ─────────────╮ │src/ui/User/Header.zig│ ╰──────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │188 │ │189 // user tab │ │190 { │ │191 - const label = ui.UserLogout.tabLabel(session); │ │191 + const label = ui.UserSettings.tabLabel(session); │ │192 var text_box = try wgt.TextBox.init(allocator, label, .{ .border = .single, .round_corners = true, .wrap_kind = .none });│ │193 errdefer text_box.deinit(allocator); │ │194 text_box.getFocus().mode = .all; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯