refactor: split out focus_view function
This commit is contained in:
parent
023b87184a
commit
82e2d2f4ec
1 changed files with 12 additions and 8 deletions
|
|
@ -874,14 +874,7 @@ const cmds = struct {
|
||||||
pub fn focus_split(self: *Self, ctx: Ctx) Result {
|
pub fn focus_split(self: *Self, ctx: Ctx) Result {
|
||||||
var n: usize = undefined;
|
var n: usize = undefined;
|
||||||
if (!try ctx.args.match(.{tp.extract(&n)})) return error.InvalidFocusSplitArgument;
|
if (!try ctx.args.match(.{tp.extract(&n)})) return error.InvalidFocusSplitArgument;
|
||||||
|
try self.focus_view(n);
|
||||||
if (n > self.views.widgets.items.len) return;
|
|
||||||
if (n == self.views.widgets.items.len)
|
|
||||||
return self.create_home_split();
|
|
||||||
|
|
||||||
if (self.views.get_at(self.active_view)) |view| view.unfocus();
|
|
||||||
self.active_view = n;
|
|
||||||
if (self.views.get_at(self.active_view)) |view| view.focus();
|
|
||||||
}
|
}
|
||||||
pub const focus_split_meta: Meta = .{ .description = "Focus split view", .arguments = &.{.integer} };
|
pub const focus_split_meta: Meta = .{ .description = "Focus split view", .arguments = &.{.integer} };
|
||||||
|
|
||||||
|
|
@ -1574,6 +1567,17 @@ pub fn focus_view_by_widget(self: *Self, w: *Widget) tui.FocusAction {
|
||||||
return .changed;
|
return .changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn focus_view(self: *Self, n: usize) !void {
|
||||||
|
if (n == self.active_view) return;
|
||||||
|
if (n > self.views.widgets.items.len) return;
|
||||||
|
if (n == self.views.widgets.items.len)
|
||||||
|
return self.create_home_split();
|
||||||
|
|
||||||
|
if (self.views.get_at(self.active_view)) |view| view.unfocus();
|
||||||
|
self.active_view = n;
|
||||||
|
if (self.views.get_at(self.active_view)) |view| view.focus();
|
||||||
|
}
|
||||||
|
|
||||||
fn remove_active_view(self: *Self) !void {
|
fn remove_active_view(self: *Self) !void {
|
||||||
if (self.views.widgets.items.len == 1) return; // can't delete last view
|
if (self.views.widgets.items.len == 1) return; // can't delete last view
|
||||||
self.active_editor = null;
|
self.active_editor = null;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue