diff --git a/src/renderer/vaxis/renderer.zig b/src/renderer/vaxis/renderer.zig index 6d662d7..68a09f7 100644 --- a/src/renderer/vaxis/renderer.zig +++ b/src/renderer/vaxis/renderer.zig @@ -354,7 +354,7 @@ pub fn request_system_clipboard(self: *Self) void { self.vx.requestSystemClipboard(self.tty.anyWriter()) catch |e| log.logger(log_name).err("request_system_clipboard", e); } -pub fn request_windows_clipboard(self: *Self) ![]u8 { +pub fn request_windows_clipboard(allocator: std.mem.Allocator) ![]u8 { const windows = std.os.windows; const win32 = struct { pub extern "user32" fn OpenClipboard(hWndNewOwner: ?windows.HWND) callconv(windows.WINAPI) windows.BOOL; @@ -375,7 +375,7 @@ pub fn request_windows_clipboard(self: *Self) ![]u8 { const text = std.mem.span(data); defer _ = win32.GlobalUnlock(mem); - return self.allocator.dupe(u8, text); + return allocator.dupe(u8, text); } pub fn request_mouse_cursor_text(self: *Self, push_or_pop: bool) void { diff --git a/src/renderer/win32/renderer.zig b/src/renderer/win32/renderer.zig index 454f315..51bf1dd 100644 --- a/src/renderer/win32/renderer.zig +++ b/src/renderer/win32/renderer.zig @@ -383,10 +383,9 @@ pub fn request_system_clipboard(self: *Self) void { _ = self; @panic("todo"); } -pub fn request_windows_clipboard(self: *Self) ![]u8 { - _ = self; - @panic("todo"); -} + +pub const request_windows_clipboard = @import("tuirenderer").request_windows_clipboard; + pub fn request_mouse_cursor_text(self: *Self, push_or_pop: bool) void { _ = self; _ = push_or_pop; diff --git a/src/tui/mainview.zig b/src/tui/mainview.zig index e5d00e1..ba54f9d 100644 --- a/src/tui/mainview.zig +++ b/src/tui/mainview.zig @@ -570,10 +570,10 @@ const cmds = struct { } pub const open_previous_file_meta = .{ .description = "Open the previous file" }; - pub fn system_paste(_: *Self, _: Ctx) Result { + pub fn system_paste(self: *Self, _: Ctx) Result { if (builtin.os.tag == .windows) { - const text = try tui.current().rdr.request_windows_clipboard(); - defer tui.current().rdr.allocator.free(text); + const text = try @import("renderer").request_windows_clipboard(self.allocator); + defer self.allocator.free(text); return command.executeName("paste", command.fmt(.{text})) catch {}; } tui.current().rdr.request_system_clipboard();