refactor: keep tab ordering stable when moving tabs between splits

This commit is contained in:
CJ van den Berg 2026-01-20 21:30:47 +01:00
parent 6ce8a2f61d
commit d600e3c353
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9

View file

@ -491,13 +491,19 @@ pub const TabBar = struct {
const buffer = buffer_manager.buffer_from_ref(src_tab.buffer_ref);
const active = if (buffer) |buf| if (mv.get_editor_for_buffer(buf)) |_| true else false else false;
if (new_view == old_view) {
tabs.insert(self.allocator, dst_idx, src_tab) catch @panic("OOM move_tab_to");
if (new_view != old_view) if (buffer) |buf| {
} else {
if (new_view orelse 0 < old_view orelse 0)
tabs.append(self.allocator, src_tab) catch @panic("OOM move_tab_to")
else
tabs.insert(self.allocator, 0, src_tab) catch @panic("OOM move_tab_to");
if (buffer) |buf| {
buf.set_last_view(new_view);
if (mv.get_editor_for_buffer(buf)) |editor|
editor.close_editor() catch {};
};
}
}
const drag_source, _ = tui.get_drag_source();
self.update_tab_widgets(drag_source) catch {};