summaryrefslogtreecommitdiffstats
path: root/input/event.c
diff options
context:
space:
mode:
authorKevin Mitchell <kevmitch@gmail.com>2015-08-29 00:42:04 -0700
committerKevin Mitchell <kevmitch@gmail.com>2015-08-30 05:28:24 -0700
commitc80b7eed53dfd9f6a0aadc9c11981cba2a59655d (patch)
tree44972f05104d989af223ff5d782b0d32faf865ee /input/event.c
parentf14f6fdb314ce42537d0948d8a24fbe77c06d17c (diff)
downloadmpv-c80b7eed53dfd9f6a0aadc9c11981cba2a59655d.tar.bz2
mpv-c80b7eed53dfd9f6a0aadc9c11981cba2a59655d.tar.xz
input: add append argument to file drop event
This puts in place the machinery to merely append dropped file to the playlist instead of replacing the existing playlist. In this commit, all front-ends set this to false preserving the existing behaviour.
Diffstat (limited to 'input/event.c')
-rw-r--r--input/event.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/input/event.c b/input/event.c
index add77f0b0c..d47f17ddaf 100644
--- a/input/event.c
+++ b/input/event.c
@@ -20,7 +20,8 @@
#include "common/msg.h"
#include "sub/find_subfiles.h"
-void mp_event_drop_files(struct input_ctx *ictx, int num_files, char **files)
+void mp_event_drop_files(struct input_ctx *ictx, int num_files, char **files,
+ enum mp_dnd_action action)
{
bool all_sub = true;
for (int i = 0; i < num_files; i++)
@@ -42,8 +43,9 @@ void mp_event_drop_files(struct input_ctx *ictx, int num_files, char **files)
"osd-auto",
"loadfile",
files[i],
- /* Start playing the dropped files right away */
- (i == 0) ? "replace" : "append",
+ /* Either start playing the dropped files right away
+ or add them to the end of the current playlist */
+ (i == 0 && action == DND_REPLACE) ? "replace" : "append-play",
NULL
};
mp_input_run_cmd(ictx, cmd);
@@ -52,7 +54,7 @@ void mp_event_drop_files(struct input_ctx *ictx, int num_files, char **files)
}
int mp_event_drop_mime_data(struct input_ctx *ictx, const char *mime_type,
- bstr data)
+ bstr data, enum mp_dnd_action action)
{
// X11 and Wayland file list format.
if (strcmp(mime_type, "text/uri-list") == 0) {
@@ -67,7 +69,7 @@ int mp_event_drop_mime_data(struct input_ctx *ictx, const char *mime_type,
char *s = bstrto0(tmp, line);
MP_TARRAY_APPEND(tmp, files, num_files, s);
}
- mp_event_drop_files(ictx, num_files, files);
+ mp_event_drop_files(ictx, num_files, files, action);
talloc_free(tmp);
return num_files > 0;
} else {