Merge branch 'master' into zig-0.14

This commit is contained in:
CJ van den Berg 2025-02-28 21:43:10 +01:00
commit dceb433e9e
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9
5 changed files with 23 additions and 3 deletions

View file

@ -616,7 +616,7 @@ pub const Editor = struct {
}
if (self.buffer) |buffer| if (buffer.get_meta()) |meta| {
const frame_ = tracy.initZone(@src(), .{ .name = extract_state });
const frame_ = tracy.initZone(@src(), .{ .name = "extract_state" });
defer frame_.deinit();
try self.extract_state(meta, .none);
};

View file

@ -290,6 +290,16 @@ const cmds = struct {
}
pub const palette_menu_up_meta: Meta = .{};
pub fn palette_menu_pagedown(self: *Self, _: Ctx) Result {
self.menu.select_last();
}
pub const palette_menu_pagedown_meta = .{};
pub fn palette_menu_pageup(self: *Self, _: Ctx) Result {
self.menu.select_first();
}
pub const palette_menu_pageup_meta = .{};
pub fn palette_menu_activate(self: *Self, _: Ctx) Result {
self.menu.activate_selected();
}

View file

@ -32,7 +32,11 @@ pub fn load_entries(palette: *Type) !usize {
(try palette.entries.addOne()).* = .{ .label = try palette.allocator.dupe(u8, task), .hint = "" };
} else return error.InvalidTaskMessageField;
}
return if (palette.entries.items.len == 0) label.len else 1;
return if (palette.entries.items.len == 0) label.len else blk: {
var longest: usize = 0;
for (palette.entries.items) |item| longest = @max(longest, item.label.len);
break :blk if (longest < label.len) return label.len - longest + 1 else 1;
};
}
pub fn clear_entries(palette: *Type) void {

View file

@ -156,6 +156,7 @@ const TabBar = struct {
fn update_tabs(self: *Self) !void {
try self.update_tab_buffers();
const prev_widget_count = self.widget_list.widgets.items.len;
while (self.widget_list.pop()) |widget| if (widget.dynamic_cast(Button.State(Tab)) == null)
widget.deinit(self.widget_list.allocator);
var first = true;
@ -169,6 +170,8 @@ const TabBar = struct {
if (tab.widget.dynamic_cast(Button.State(Tab))) |btn|
try btn.update_label(Tab.name_from_buffer(tab.buffer));
}
if (prev_widget_count != self.widget_list.widgets.items.len)
tui.refresh_hover();
}
fn update_tab_buffers(self: *Self) !void {