mirror of
https://github.com/kovidgoyal/kitty
synced 2026-06-08 14:18:26 +02:00
More work on dnd kitten
This commit is contained in:
@@ -417,8 +417,12 @@ func (d *drop_status) reset() {
|
|||||||
|
|
||||||
func (d *drop_dest) reset() {
|
func (d *drop_dest) reset() {
|
||||||
if d.dest != nil && d.dest != os.Stdout {
|
if d.dest != nil && d.dest != os.Stdout {
|
||||||
|
if d.close_on_finish {
|
||||||
d.dest.Close()
|
d.dest.Close()
|
||||||
d.dest = nil
|
d.dest = nil
|
||||||
|
} else {
|
||||||
|
d.dest.(*bufferWriteCloser).Reset()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
d.completed = false
|
d.completed = false
|
||||||
d.close_on_finish = 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 {
|
if err := dest.finish(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
dest.completed = true
|
|
||||||
if mime == "text/uri-list" {
|
if mime == "text/uri-list" {
|
||||||
b := dest.dest.(*bufferWriteCloser)
|
b := dest.dest.(*bufferWriteCloser)
|
||||||
var err error
|
var err error
|
||||||
|
|||||||
11
kitty/glfw.c
11
kitty/glfw.c
@@ -3077,9 +3077,18 @@ start_window_drag(Window *w, bool in_test_mode) {
|
|||||||
if (!items) return ENOMEM;
|
if (!items) return ENOMEM;
|
||||||
for (size_t i = 0; i < w->drag_source.num_mimes; i++) {
|
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].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].optional_data = (char*)w->drag_source.items[i].optional_data;
|
||||||
items[i].data_size = w->drag_source.items[i].data_size;
|
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;
|
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++;
|
for (size_t i = 0; i < arraysz(w->drag_source.images); i++) if (w->drag_source.images[i].data) num_images++;
|
||||||
|
|||||||
Reference in New Issue
Block a user