fix: ensure palettes are never smaller than their input hint

This commit is contained in:
CJ van den Berg 2025-08-05 09:59:48 +02:00
parent 8ea3356b57
commit 4ca455cbba
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9
2 changed files with 5 additions and 3 deletions

View file

@ -36,6 +36,8 @@ longest: usize = 0,
commands: Commands = undefined,
buffer_manager: ?*BufferManager,
const inputbox_label = "Search files by name";
pub fn create(allocator: std.mem.Allocator) !tui.Mode {
const mv = tui.mainview() orelse return error.NotFound;
const self = try allocator.create(Self);
@ -51,7 +53,7 @@ pub fn create(allocator: std.mem.Allocator) !tui.Mode {
.logger = log.logger(@typeName(Self)),
.inputbox = (try self.menu.add_header(try InputBox.create(*Self, self.allocator, self.menu.menu.parent, .{
.ctx = self,
.label = "Search files by name",
.label = inputbox_label,
}))).dynamic_cast(InputBox.State(*Self)) orelse unreachable,
.buffer_manager = tui.get_buffer_manager(),
};
@ -82,7 +84,7 @@ pub fn deinit(self: *Self) void {
}
inline fn menu_width(self: *Self) usize {
return @min(self.longest, max_menu_width()) + 2;
return @max(@min(self.longest, max_menu_width()) + 2, inputbox_label.len + 2);
}
inline fn menu_pos_x(self: *Self) usize {

View file

@ -153,7 +153,7 @@ pub fn Create(options: type) type {
fn do_resize(self: *Self) void {
const screen = tui.screen();
const w = @min(self.longest, max_menu_width) + 2 + 1 + self.longest_hint;
const w = @max(@min(self.longest, max_menu_width) + 2 + 1 + self.longest_hint, options.label.len + 2);
const x = if (screen.w > w) (screen.w - w) / 2 else 0;
self.view_rows = get_view_rows(screen);
const h = @min(self.items + self.menu.header_count, self.view_rows + self.menu.header_count);