Compare commits
No commits in common. "6c478a97a0b598381da7e83cbff200912ff6824e" and "6ce8a2f61dba7efb8242ef15514d77ed38071eb8" have entirely different histories.
6c478a97a0
...
6ce8a2f61d
2 changed files with 12 additions and 32 deletions
|
|
@ -966,23 +966,6 @@ const cmds = struct {
|
|||
}
|
||||
pub const close_split_meta: Meta = .{ .description = "Close split view" };
|
||||
|
||||
pub fn close_view(self: *Self, ctx: Ctx) Result {
|
||||
var view: usize = undefined;
|
||||
if (!try ctx.args.match(.{tp.extract(&view)})) return error.InvalidCloseViewArgument;
|
||||
|
||||
if (view >= self.views.widgets.items.len) return;
|
||||
self.remove_view(view) catch return;
|
||||
|
||||
const buffers = self.buffer_manager.list_unordered(self.allocator) catch @panic("OOM close_view");
|
||||
defer self.allocator.free(buffers);
|
||||
for (buffers) |buffer| if (buffer.get_last_view()) |buffer_view|
|
||||
if (buffer_view >= view)
|
||||
buffer.set_last_view(buffer_view - 1);
|
||||
|
||||
_ = self.widgets_widget.msg(.{"splits_updated"}) catch {};
|
||||
}
|
||||
pub const close_view_meta: Meta = .{ .arguments = &.{.integer} };
|
||||
|
||||
pub fn close_splits(self: *Self, _: Ctx) Result {
|
||||
while (self.views.widgets.items.len > 1)
|
||||
try self.remove_view(1);
|
||||
|
|
@ -1541,8 +1524,11 @@ pub fn handle_editor_event(self: *Self, editor: *ed.Editor, m: tp.message) tp.re
|
|||
self.show_file_async(file_path)
|
||||
else if (self.views.widgets.items.len == 1)
|
||||
self.show_home_async()
|
||||
else
|
||||
tp.self_pid().send(.{ "cmd", "close_view", .{view} }) catch return;
|
||||
else {
|
||||
tp.self_pid().send(.{ "cmd", "close_split", .{} }) catch return;
|
||||
if (self.get_next_mru_buffer(.non_hidden)) |file_path|
|
||||
self.show_file_async(file_path);
|
||||
}
|
||||
} else self.show_home_async();
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -491,19 +491,13 @@ 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");
|
||||
} 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| {
|
||||
|
||||
if (new_view != old_view) 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 {};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue