diff options
author | wm4 <wm4@nowhere> | 2014-01-04 19:32:09 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-01-04 19:33:40 +0100 |
commit | 7c6bb321eb0542c474e5147558fb71ecf2d44bd4 (patch) | |
tree | 82a8d90b9bbc0f33b390d95ca78d5d0a24c64405 /video/out/x11_common.c | |
parent | 6534839154b9644a0019baf155f9bda542aa6e75 (diff) | |
download | mpv-7c6bb321eb0542c474e5147558fb71ecf2d44bd4.tar.bz2 mpv-7c6bb321eb0542c474e5147558fb71ecf2d44bd4.tar.xz |
video/out: remove some code duplication between X11 and wayland
Both X11 and Wayland support the same format for drag & drop operations
(text/uri-list), and the code for that was copied from x11_common.c to
wayland_common.c. Factor it out.
Diffstat (limited to 'video/out/x11_common.c')
-rw-r--r-- | video/out/x11_common.c | 22 |
1 files changed, 2 insertions, 20 deletions
diff --git a/video/out/x11_common.c b/video/out/x11_common.c index a48c3f6e0e..2c25c19437 100644 --- a/video/out/x11_common.c +++ b/video/out/x11_common.c @@ -736,25 +736,6 @@ void vo_x11_uninit(struct vo *vo) vo->x11 = NULL; } -// The data is in the form of the mimetype text/uri-list. -static bool dnd_handle_drop_data(struct vo *vo, bstr data) -{ - void *tmp = talloc_new(NULL); - int num_files = 0; - char **files = NULL; - while (data.len) { - bstr line = bstr_getline(data, &data); - line = bstr_strip_linebreaks(line); - if (bstr_startswith0(line, "#")) - continue; - char *s = bstrto0(tmp, line); - MP_TARRAY_APPEND(tmp, files, num_files, s); - } - mp_event_drop_files(vo->input_ctx, num_files, files); - talloc_free(tmp); - return num_files > 0; -} - static void vo_x11_dnd_init_window(struct vo *vo) { struct vo_x11_state *x11 = vo->x11; @@ -860,7 +841,8 @@ static void vo_x11_dnd_handle_selection(struct vo *vo, XSelectionEvent *se) if (!bytes_left && type == x11->dnd_requested_format && format == 8) { // No idea if this is guaranteed to be \0-padded, so use bstr. - success = dnd_handle_drop_data(vo, (bstr){prop, nitems}); + success = mp_event_drop_mime_data(vo->input_ctx, "text/uri-list", + (bstr){prop, nitems}) > 0; } XFree(prop); } |