mirror of https://github.com/mpv-player/mpv
cocoa: allow to drag and drop URLs
This commit also improves the visual feedback to the user by showing a plus icon in the mouse cursor when dragging supported types. Fixes #469
This commit is contained in:
parent
b6907a7bb5
commit
0f8558a723
|
@ -33,7 +33,8 @@
|
|||
- (id)initWithFrame:(NSRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self registerForDraggedTypes:@[NSFilenamesPboardType]];
|
||||
[self registerForDraggedTypes:@[NSFilenamesPboardType,
|
||||
NSURLPboardType]];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
@ -234,14 +235,27 @@
|
|||
|
||||
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender
|
||||
{
|
||||
return NSDragOperationEvery;
|
||||
NSPasteboard *pboard = [sender draggingPasteboard];
|
||||
NSArray *types = [pboard types];
|
||||
if ([types containsObject:NSFilenamesPboardType] ||
|
||||
[types containsObject:NSURLPboardType])
|
||||
return NSDragOperationCopy;
|
||||
else
|
||||
return NSDragOperationNone;
|
||||
}
|
||||
|
||||
- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender
|
||||
{
|
||||
NSPasteboard *pboard = [sender draggingPasteboard];
|
||||
NSArray *pbitems = [pboard propertyListForType:NSFilenamesPboardType];
|
||||
[self.adapter handleFilesArray:pbitems];
|
||||
return YES;
|
||||
if ([[pboard types] containsObject:NSURLPboardType]) {
|
||||
NSURL *file_url = [NSURL URLFromPasteboard:pboard];
|
||||
[self.adapter handleFilesArray:@[[file_url absoluteString]]];
|
||||
return YES;
|
||||
} else if ([[pboard types] containsObject:NSFilenamesPboardType]) {
|
||||
NSArray *pbitems = [pboard propertyListForType:NSFilenamesPboardType];
|
||||
[self.adapter handleFilesArray:pbitems];
|
||||
return YES;
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
@end
|
||||
|
|
Loading…
Reference in New Issue