fix: palette insert handlers

This commit is contained in:
CJ van den Berg 2024-11-17 23:54:31 +01:00
parent 2f0da48c6c
commit 27a54a6091
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9
2 changed files with 22 additions and 2 deletions

View file

@ -60,7 +60,9 @@ pub fn create(allocator: std.mem.Allocator) !tui.Mode {
try mv.floating_views.add(self.modal.widget()); try mv.floating_views.add(self.modal.widget());
try mv.floating_views.add(self.menu.container_widget); try mv.floating_views.add(self.menu.container_widget);
return .{ return .{
.input_handler = try keybind.mode.overlay.palette.create(allocator, .{}), .input_handler = try keybind.mode.overlay.palette.create(allocator, .{
.insert_command = "overlay_insert_bytes",
}),
.event_handler = EventHandler.to_owned(self), .event_handler = EventHandler.to_owned(self),
.name = "󰈞 open recent", .name = "󰈞 open recent",
}; };
@ -308,6 +310,14 @@ const cmds = struct {
} }
pub const overlay_insert_code_point_meta = .{ .interactive = false }; pub const overlay_insert_code_point_meta = .{ .interactive = false };
pub fn overlay_insert_bytes(self: *Self, ctx: Ctx) Result {
var bytes: []const u8 = undefined;
if (!try ctx.args.match(.{tp.extract(&bytes)}))
return error.InvalidArgument;
self.insert_bytes(bytes) catch |e| return tp.exit_error(e, @errorReturnTrace());
}
pub const overlay_insert_bytes_meta = .{ .interactive = false };
pub fn overlay_release_control(self: *Self, _: Ctx) Result { pub fn overlay_release_control(self: *Self, _: Ctx) Result {
if (self.menu.selected orelse 0 > 0) return self.cmd("palette_menu_activate", .{}); if (self.menu.selected orelse 0 > 0) return self.cmd("palette_menu_activate", .{});
} }

View file

@ -82,7 +82,9 @@ pub fn Create(options: type) type {
try mv.floating_views.add(self.modal.widget()); try mv.floating_views.add(self.modal.widget());
try mv.floating_views.add(self.menu.container_widget); try mv.floating_views.add(self.menu.container_widget);
return .{ return .{
.input_handler = try keybind.mode.overlay.palette.create(allocator, .{}), .input_handler = try keybind.mode.overlay.palette.create(allocator, .{
.insert_command = "overlay_insert_bytes",
}),
.event_handler = EventHandler.to_owned(self), .event_handler = EventHandler.to_owned(self),
.name = options.name, .name = options.name,
}; };
@ -432,6 +434,14 @@ pub fn Create(options: type) type {
} }
pub const overlay_insert_code_point_meta = .{ .interactive = false }; pub const overlay_insert_code_point_meta = .{ .interactive = false };
pub fn overlay_insert_bytes(self: *Self, ctx: Ctx) Result {
var bytes: []const u8 = undefined;
if (!try ctx.args.match(.{tp.extract(&bytes)}))
return error.InvalidArgument;
self.insert_bytes(bytes) catch |e| return tp.exit_error(e, @errorReturnTrace());
}
pub const overlay_insert_bytes_meta = .{ .interactive = false };
pub fn overlay_release_control(self: *Self, _: Ctx) Result { pub fn overlay_release_control(self: *Self, _: Ctx) Result {
if (self.menu.selected orelse 0 > 0) return self.cmd("palette_menu_activate", .{}); if (self.menu.selected orelse 0 > 0) return self.cmd("palette_menu_activate", .{});
} }