More work on dnd kitten

This commit is contained in:
Kovid Goyal 2026-05-08 22:23:29 +05:30
parent e4eb85216d
commit 0cddb39d95
No known key found for this signature in database
GPG key ID: 06BC317B515ACE7C
2 changed files with 16 additions and 4 deletions

View file

@ -417,8 +417,12 @@ func (d *drop_status) reset() {
func (d *drop_dest) reset() {
if d.dest != nil && d.dest != os.Stdout {
if d.close_on_finish {
d.dest.Close()
d.dest = nil
} else {
d.dest.(*bufferWriteCloser).Reset()
}
}
d.completed = false
d.close_on_finish = false
@ -768,7 +772,6 @@ func (dnd *dnd) on_drop_data(cmd DC) error {
if err := dest.finish(); err != nil {
return err
}
dest.completed = true
if mime == "text/uri-list" {
b := dest.dest.(*bufferWriteCloser)
var err error

View file

@ -3077,9 +3077,18 @@ start_window_drag(Window *w, bool in_test_mode) {
if (!items) return ENOMEM;
for (size_t i = 0; i < w->drag_source.num_mimes; i++) {
items[i].mime_type = w->drag_source.items[i].mime_type;
items[i].is_remote_client = w->drag_source.is_remote_client;
items[i].optional_data = (char*)w->drag_source.items[i].optional_data;
items[i].data_size = w->drag_source.items[i].data_size;
items[i].is_remote_client = w->drag_source.is_remote_client;
#ifndef __APPLE__
if (w->drag_source.is_remote_client && w->drag_source.items[i].is_uri_list) {
// On platforms other than macOS we treat the request for data for
// this MIME type as a trigger to start remote download. On macOS
// requests for individual items from this list will come in.
items[i].optional_data = NULL;
items[i].data_size = 0;
}
#endif
}
size_t num_images = 0;
for (size_t i = 0; i < arraysz(w->drag_source.images); i++) if (w->drag_source.images[i].data) num_images++;