From acd65d0157dcf6d94de6cdba81d94bccfaa46df3 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Fri, 14 Jun 2024 20:41:01 +0200 Subject: [PATCH] fix: menu and open_recent resize handling --- src/tui/Menu.zig | 4 ++-- src/tui/WidgetList.zig | 8 ++++---- src/tui/mainview.zig | 2 +- src/tui/mode/overlay/open_recent.zig | 10 ++-------- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/tui/Menu.zig b/src/tui/Menu.zig index 3fd682e..a1cc476 100644 --- a/src/tui/Menu.zig +++ b/src/tui/Menu.zig @@ -36,7 +36,7 @@ pub fn Options(context: type) type { pub fn on_resize_default(_: context, state: *State(Context), box_: Widget.Box) void { var box = box_; box.h = state.menu.widgets.items.len; - state.menu.handle_resize(box); + state.menu.resize(box); } }; } @@ -133,7 +133,7 @@ pub fn State(ctx_type: type) type { } pub fn resize(self: *Self, box: Widget.Box) void { - self.menu.handle_resize(box); + self.menu.resize(box); } pub fn update(self: *Self) void { diff --git a/src/tui/WidgetList.zig b/src/tui/WidgetList.zig index 16d54db..d0b79b0 100644 --- a/src/tui/WidgetList.zig +++ b/src/tui/WidgetList.zig @@ -179,15 +179,15 @@ fn refresh_layout(self: *Self) void { return if (self.box) |box| self.handle_resize(box); } -pub fn resize(self: *Self, pos: Widget.Box) void { - return self.on_resize(self.ctx, self, pos); +pub fn handle_resize(self: *Self, pos: Widget.Box) void { + self.on_resize(self.ctx, self, pos); } fn on_resize_default(_: ?*anyopaque, self: *Self, pos: Widget.Box) void { - self.handle_resize(pos); + self.resize(pos); } -pub fn handle_resize(self: *Self, pos_: Widget.Box) void { +pub fn resize(self: *Self, pos_: Widget.Box) void { self.box = pos_; var pos = pos_; const total = self.get_size_a(&pos).*; diff --git a/src/tui/mainview.zig b/src/tui/mainview.zig index 0b4be42..e9418eb 100644 --- a/src/tui/mainview.zig +++ b/src/tui/mainview.zig @@ -101,7 +101,7 @@ pub fn render(self: *Self, theme: *const Widget.Theme) bool { } pub fn handle_resize(self: *Self, pos: Box) void { - self.widgets.resize(pos); + self.widgets.handle_resize(pos); self.floating_views.resize(pos); } diff --git a/src/tui/mode/overlay/open_recent.zig b/src/tui/mode/overlay/open_recent.zig index d91f4d5..12f5d86 100644 --- a/src/tui/mode/overlay/open_recent.zig +++ b/src/tui/mode/overlay/open_recent.zig @@ -103,14 +103,8 @@ fn render_cell(plane: *Plane, y: usize, x: usize, style: Widget.Theme.Style) !vo _ = plane.putc(&cell) catch {}; } -fn on_resize_menu(self: *Self, state: *Menu.State(*Self), box: Widget.Box) void { - const w = @min(box.w, @min(self.longest, max_menu_width) + 2); - self.menu.resize(.{ - .y = 0, - .x = box.w - w / 2, - .h = state.menu.widgets.items.len, - .w = w, - }); +fn on_resize_menu(self: *Self, _: *Menu.State(*Self), _: Widget.Box) void { + self.menu.resize(.{ .y = 0, .x = 25, .w = @min(self.longest, max_menu_width) + 2 }); } fn menu_action_open_file(menu: **Menu.State(*Self), button: *Button.State(*Menu.State(*Self))) void {