diff --git a/src/tui/home.zig b/src/tui/home.zig index abb31f7..57237b1 100644 --- a/src/tui/home.zig +++ b/src/tui/home.zig @@ -9,6 +9,7 @@ const Button = @import("Button.zig"); const Menu = @import("Menu.zig"); const tui = @import("tui.zig"); const command = @import("command"); +const keybind = @import("keybind"); const fonts = @import("fonts.zig"); @@ -20,6 +21,7 @@ commands: Commands = undefined, menu: *Menu.State(*Self), menu_w: usize = 0, max_desc_len: usize = 0, +input_namespace: []const u8, const Self = @This(); @@ -49,6 +51,7 @@ pub fn create(allocator: std.mem.Allocator, parent: Widget) !Widget { .parent = parent.plane.*, .plane = n, .menu = try Menu.create(*Self, allocator, w, .{ .ctx = self, .on_render = menu_on_render }), + .input_namespace = keybind.get_namespace(), }; try self.commands.init(self); self.get_max_desc_len(keybind_mode.keybind_hints); @@ -148,6 +151,8 @@ fn menu_action(comptime command_name: []const u8) *const fn (_: **Menu.State(*Se } pub fn render(self: *Self, theme: *const Widget.Theme) bool { + if (!std.mem.eql(u8, self.input_namespace, keybind.get_namespace())) + tp.self_pid().send(.{ "cmd", "show_home" }) catch {}; self.plane.set_base_style(theme.editor); self.plane.erase(); self.plane.home(); diff --git a/src/tui/mainview.zig b/src/tui/mainview.zig index 1b8a78f..928c5b3 100644 --- a/src/tui/mainview.zig +++ b/src/tui/mainview.zig @@ -687,9 +687,14 @@ fn show_home_async(_: *Self) void { fn create_home(self: *Self) !void { tui.reset_drag_context(); if (self.editor) |_| return; - var home_widget = try home.create(self.allocator, Widget.to(self)); - errdefer home_widget.deinit(self.allocator); - self.widgets.replace(self.view_widget_idx, home_widget); + self.widgets.replace( + self.view_widget_idx, + try Widget.empty(self.allocator, self.widgets_widget.plane.*, .dynamic), + ); + self.widgets.replace( + self.view_widget_idx, + try home.create(self.allocator, Widget.to(self)), + ); tui.current().resize(); }