diff --git a/app/internal/window/os_wayland.go b/app/internal/window/os_wayland.go index cee2128c..0bc37c23 100644 --- a/app/internal/window/os_wayland.go +++ b/app/internal/window/os_wayland.go @@ -282,6 +282,9 @@ func (d *wlDisplay) readClipboard() (io.ReadCloser, error) { if err != nil { return nil, err } + // wl_data_offer_receive performs and implicit dup(2) of the write end + // of the pipe. Close our version. + defer w.Close() cmimeType := C.CString(s.mimeType) defer C.free(unsafe.Pointer(cmimeType)) C.wl_data_offer_receive(s.clipboard, cmimeType, C.int(w.Fd()))