From d52bdd3356137cf67a3458fdee5c94fdec4337e1 Mon Sep 17 00:00:00 2001 From: "marius a. eriksen" Date: Tue, 23 Dec 2014 20:45:35 -0800 Subject: devdraw: plumb drag-n-dropped files Change-Id: I7585870aee57c7482ebdd19c117be7982123ce79 Reviewed-on: https://plan9port-review.googlesource.com/1130 Reviewed-by: Russ Cox --- src/cmd/devdraw/cocoa-screen.m | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'src/cmd/devdraw') diff --git a/src/cmd/devdraw/cocoa-screen.m b/src/cmd/devdraw/cocoa-screen.m index 03355362..fc73814b 100644 --- a/src/cmd/devdraw/cocoa-screen.m +++ b/src/cmd/devdraw/cocoa-screen.m @@ -159,6 +159,7 @@ static NSRect dilate(NSRect); detachDrawingThread:@selector(callservep9p:) toTarget:[self class] withObject:nil]; } + - (void)windowDidBecomeKey:(id)arg { getmousepos(); @@ -298,6 +299,41 @@ attachscreen(char *label, char *winsize) [win.content setHidden:NO]; [super deminiaturize:arg]; } + +- (NSDragOperation)draggingEntered:(id)arg +{ + NSPasteboard *b; + NSDragOperation op; + + op = [arg draggingSourceOperationMask]; + b = [arg draggingPasteboard]; + + if([[b types] containsObject:NSFilenamesPboardType]) + if(op&NSDragOperationLink) + return NSDragOperationLink; + + return NSDragOperationNone; +} + +- (BOOL)performDragOperation:(id)arg +{ + NSPasteboard *b; + NSArray *files; + int i, n; + + b = [arg draggingPasteboard]; + if(![[b types] containsObject:NSFilenamesPboardType]) + return NO; + + files = [b propertyListForType:NSFilenamesPboardType]; + n = [files count]; + for(i=0; i