From 2cae54f0d9013256db3f6706931d06731191dd85 Mon Sep 17 00:00:00 2001 From: FredKiefer Date: Fri, 21 Dec 2001 00:45:15 +0000 Subject: [PATCH] Implemented dragFile:fromRect:slideBack:event:]. Moved code from [dragImage:...slideBack:] to NSWindow and call this. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@11854 72102866-910b-0410-8b05-ffd578937521 --- Source/NSView.m | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/Source/NSView.m b/Source/NSView.m index e2da1e791..eca328210 100644 --- a/Source/NSView.m +++ b/Source/NSView.m @@ -64,6 +64,7 @@ #include #include #include +#include #include /* Variable tells this view and subviews that we're printing. Not really @@ -2523,7 +2524,26 @@ static NSView* findByTag(NSView *view, int aTag, unsigned *level) slideBack: (BOOL)slideFlag event: (NSEvent*)event { - return NO; + NSImage *anImage = [[NSWorkspace sharedWorkspace] iconForFile: filename]; + NSPasteboard *pboard = [NSPasteboard pasteboardWithName: NSDragPboard]; + + if (anImage == nil) + return NO; + + [pboard declareTypes: [NSArray arrayWithObject: NSFilenamesPboardType] + owner: self]; + if (![pboard setPropertyList: filename + forType: NSFilenamesPboardType]) + return NO; + + [self dragImage: anImage + at: rect.origin + offset: NSMakeSize(0, 0) + event: event + pasteboard: pboard + source: self + slideBack: slideFlag]; + return YES; } - (void) dragImage: (NSImage*)anImage @@ -2534,16 +2554,13 @@ static NSView* findByTag(NSView *view, int aTag, unsigned *level) source: (id)sourceObject slideBack: (BOOL)slideFlag { - NSView *dragView = (NSView*)[GSCurrentContext() _dragInfo]; - - [NSApp preventWindowOrdering]; - [dragView dragImage: anImage - at: viewLocation - offset: initialOffset - event: event + [_window dragImage: anImage + at: [self convertPoint: viewLocation toView: nil] + offset: initialOffset + event: event pasteboard: pboard - source: sourceObject - slideBack: slideFlag]; + source: sourceObject + slideBack: slideFlag]; } - (void) registerForDraggedTypes: (NSArray*)types