Skip to content

Commit

Permalink
fix paste OP from external source of filetree
Browse files Browse the repository at this point in the history
  • Loading branch information
oligo committed Nov 20, 2024
1 parent 39b2d63 commit f8af9d2
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions explorer/tree_style.go
Original file line number Diff line number Diff line change
Expand Up @@ -377,20 +377,25 @@ func (eitem *EntryNavItem) Update(gtx C) error {

case transfer.DataEvent:
// read the clipboard content:
reader := event.Open()
defer reader.Close()
content, err := io.ReadAll(reader)
if err != nil {
return err
}

defer gtx.Execute(op.InvalidateCmd{})

//FIXME: clipboard data might be invalid file path.
if event.Type == mimeText {
p, err := toPayload(event.Open())
p, err := toPayload(content)
if err == nil {
if err := eitem.OnPaste(p.Data, p.IsCut, p.GetSrc()); err != nil {
return err
}
} else {
content, err := io.ReadAll(event.Open())
if err == nil {
if err := eitem.OnPaste(string(content), false, nil); err != nil {
return err
}
if err := eitem.OnPaste(string(content), false, nil); err != nil {
return err
}
}
}
Expand Down Expand Up @@ -431,11 +436,9 @@ func asPayload(src *EntryNavItem, data string, isCut bool) io.Reader {
return strings.NewReader(buf.String())
}

func toPayload(reader io.ReadCloser) (*payload, error) {
func toPayload(buf []byte) (*payload, error) {
p := payload{}
defer reader.Close()

err := json.NewDecoder(reader).Decode(&p)
err := json.Unmarshal(buf, &p)
if err != nil {
return nil, err
}
Expand Down

0 comments on commit f8af9d2

Please sign in to comment.