From 752028944232c4e93d6fbd52114c4fd82e1d92b6 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Wed, 4 Feb 2026 09:54:07 +0100 Subject: [PATCH] fix: always update tab views when splits arrangement has changed closes #485 --- src/tui/mainview.zig | 2 +- src/tui/status/tabs.zig | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/tui/mainview.zig b/src/tui/mainview.zig index f444d10..5cdf21c 100644 --- a/src/tui/mainview.zig +++ b/src/tui/mainview.zig @@ -1739,6 +1739,7 @@ fn add_and_activate_view(self: *Self, widget: Widget) !void { try self.views.add(widget); self.active_view = self.views.widgets.items.len - 1; if (self.views.get_at(self.active_view)) |view| view.focus(); + _ = try self.widgets_widget.msg(.{"splits_updated"}); } pub fn find_view_for_widget(self: *Self, w_: *const Widget) ?usize { @@ -1864,7 +1865,6 @@ fn create_home(self: *Self) !void { pub fn create_home_split(self: *Self) !void { tui.reset_drag_context(); try self.add_and_activate_view(try home.create(self.allocator, Widget.to(self))); - _ = try self.widgets_widget.msg(.{"splits_updated"}); tui.resize(); } diff --git a/src/tui/status/tabs.zig b/src/tui/status/tabs.zig index 00fcd91..b7bc505 100644 --- a/src/tui/status/tabs.zig +++ b/src/tui/status/tabs.zig @@ -281,6 +281,7 @@ pub const TabBar = struct { const mv = tui.mainview() orelse @panic("tabs no main view"); const buffer_manager = tui.get_buffer_manager() orelse @panic("tabs no buffer manager"); var prev_widget_count: usize = 0; + for (self.widget_list.widgets.items) |*split_widgetstate| if (split_widgetstate.widget.dynamic_cast(WidgetList)) |split| { prev_widget_count += 1; for (split.widgets.items) |_| prev_widget_count += 1; @@ -296,6 +297,10 @@ pub const TabBar = struct { split.deinit(self.widget_list.allocator); }; + for (self.tabs) |*tab| if (buffer_manager.buffer_from_ref(tab.buffer_ref)) |buffer| { + tab.view = buffer.get_last_view() orelse 0; + }; + const views = mv.get_view_count(); var widget_count: usize = 0;