╭ changed ─────────────╮ │src/ui/Repo/Header.zig│ ╰──────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │208 }); │ │209 } │ │210 │ │211 - // settings tab │ │212 - { │ │211 + // settings tab. settings are account preferences, so it needs a login │ │212 + // (which also rules out local mode, which has no accounts). │ │213 + if (session.data.user_id != null) { │ │214 var text_box = try wgt.TextBox(ui.Widget).init(allocator, "settings", .{ .border_style = .single, .rounded_corners = true, .wrap_kind = .none });│ │215 errdefer text_box.deinit(allocator); │ │216 text_box.getFocus().focusable = true; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────╮ │271 for (self.box.children.keys(), self.box.children.values()) |id, *child| { │ │272 const tb: ?*wgt.TextBox(ui.Widget) = switch (child.widget) { │ │273 .text_box => |*x| x, │ │273 - .auth_tab => |*at| &at.text_box, │ │274 + .auth_tab => |*at| blk: { │ │275 + // the label tracks login state per frame, so the width must too│ │276 + child.min_size = .{ .width = at.minWidth(), .height = null }; │ │277 + break :blk &at.text_box; │ │278 + }, │ │279 else => null, │ │280 }; │ │281 if (tb) |t| { │ ╰─────────────────────────────────────────────────────────────────────────────────────────╯