diff --git a/src/keybind/keybind.zig b/src/keybind/keybind.zig index c76cdde..2dea15d 100644 --- a/src/keybind/keybind.zig +++ b/src/keybind/keybind.zig @@ -369,7 +369,6 @@ const BindingSet = struct { var keypress: input.Key = 0; var egc: input.Key = 0; var modifiers: input.Mods = 0; - var text: []const u8 = ""; if (try m.match(.{ "I", @@ -388,10 +387,6 @@ const BindingSet = struct { } } else if (try m.match(.{"F"})) { self.flush() catch |e| return tp.exit_error(e, @errorReturnTrace()); - } else if (try m.match(.{ "system_clipboard", tp.extract(&text) })) { - self.flush() catch |e| return tp.exit_error(e, @errorReturnTrace()); - self.insert_bytes(text) catch |e| return tp.exit_error(e, @errorReturnTrace()); - self.flush() catch |e| return tp.exit_error(e, @errorReturnTrace()); } return false; } diff --git a/src/tui/tui.zig b/src/tui/tui.zig index 486b265..c7b53dc 100644 --- a/src/tui/tui.zig +++ b/src/tui/tui.zig @@ -283,9 +283,9 @@ fn receive_safe(self: *Self, from: tp.pid_ref, m: tp.message) !void { return; } - if (try m.match(.{ "system_clipboard", tp.string })) { - if (self.active_event_handler()) |eh| - eh.send(tp.self_pid(), m) catch |e| self.logger.err("clipboard handler", e); + if (try m.match(.{ "system_clipboard", tp.extract(&text) })) { + try self.dispatch_flush_input_event(); + try command.executeName("paste", command.fmt(.{text})); return; }