Skip to content

Commit

Permalink
implement requested changes
Browse files Browse the repository at this point in the history
  • Loading branch information
StarHack committed Apr 21, 2023
1 parent cce63c5 commit e40ee48
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 10 deletions.
6 changes: 3 additions & 3 deletions app/os_macos.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ import (
"image"
"io"
"mime"
"os"
"path/filepath"
"runtime"
"strings"
"time"
"unicode"
"unicode/utf8"
Expand Down Expand Up @@ -572,8 +572,8 @@ func gio_onExternalDrop(view C.CFTypeRef, path *C.char) {

w.w.Event(transfer.DataEvent{
Type: mime,
Open: func() io.ReadCloser {
return io.NopCloser(strings.NewReader(fileUrl))
Open: func() (io.ReadCloser, error) {
return os.Open(fileUrl)
},
})
}
Expand Down
4 changes: 2 additions & 2 deletions io/router/pointer.go
Original file line number Diff line number Diff line change
Expand Up @@ -858,9 +858,9 @@ func (q *pointerQueue) deliverTransferDataEvent(p *pointerInfo, events *handlerE
transferIdx := len(q.transfers)
events.Add(p.dataTarget, transfer.DataEvent{
Type: src.offeredMime,
Open: func() io.ReadCloser {
Open: func() (io.ReadCloser, error) {
q.transfers[transferIdx] = nil
return src.data
return src.data, nil
},
})
q.transfers = append(q.transfers, src.data)
Expand Down
13 changes: 9 additions & 4 deletions io/router/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -183,10 +183,15 @@ func (q *Router) Queue(events ...event.Event) bool {
case clipboard.Event:
q.cqueue.Push(e, &q.handlers)
case transfer.DataEvent:
for tag, handler := range q.pointer.queue.handlers {
for _, mimeType := range (*handler).targetMimes {
if mimeType == e.Type {
q.handlers.Add(tag, e)
pq := &q.pointer.queue
for _, h := range pq.hitTree {
if h.tag != nil {
targetMimes := pq.handlers[h.tag].targetMimes
for _, mimeType := range targetMimes {
if mimeType == e.Type {
q.handlers.Add(h.tag, e)
break
}
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion io/transfer/transfer.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ type DataEvent struct {
Type string
// Open returns the transfer data. It is only valid to call Open in the frame
// the DataEvent is received. The caller must close the return value after use.
Open func() io.ReadCloser
Open func() (io.ReadCloser, error)
}

func (DataEvent) ImplementsEvent() {}

0 comments on commit e40ee48

Please sign in to comment.