Adium

Changeset 14558

Show
Ignore:
Timestamp:
12/22/2005 02:11:43 AM (3 years ago)
Author:
evands
Message:

Fixed drag & drop of .textClipping files to the message entry view. Fixes #1689.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Frameworks/Adium Framework/AIMessageEntryTextView.m

    r14162 r14558  
    721721*/ 
    722722 
     723#define SUPPORTED_DRAG_TYPE_ARRAY [NSArray arrayWithObjects: \ 
     724        NSFilenamesPboardType, NSTIFFPboardType, NSPDFPboardType, NSPICTPboardType, nil] 
     725 
     726#define PASS_TO_SUPERCLASS_DRAG_TYPE_ARRAY [NSArray arrayWithObject:NSStringPboardType] 
     727 
    723728//We don't need to prepare for the types we are handling in performDragOperation: below 
    724729- (BOOL)prepareForDragOperation:(id <NSDraggingInfo>)sender 
    725730{ 
    726731        NSPasteboard    *pasteboard = [sender draggingPasteboard]; 
    727         NSString                *type = [pasteboard availableTypeFromArray:[NSArray arrayWithObjects:NSFilenamesPboardType,NSTIFFPboardType,NSPDFPboardType,NSPICTPboardType,nil]]; 
     732        NSString                *type = [pasteboard availableTypeFromArray:SUPPORTED_DRAG_TYPE_ARRAY]; 
     733        NSString                *superclassType = [pasteboard availableTypeFromArray:PASS_TO_SUPERCLASS_DRAG_TYPE_ARRAY]; 
    728734        BOOL                    allowDragOperation; 
    729          
    730         if (type) { 
    731                  
     735 
     736        if (type && !superclassType) {           
    732737                // XXX - This shouldn't let you insert into a view for which the delegate says NO to some sort of check. 
    733738                allowDragOperation = YES; 
     
    743748{ 
    744749        NSPasteboard    *pasteboard = [sender draggingPasteboard]; 
    745         NSString                *type = [pasteboard availableTypeFromArray:[NSArray arrayWithObjects:NSFilenamesPboardType,NSTIFFPboardType,NSPDFPboardType,NSPICTPboardType,nil]]; 
    746          
    747         if (!type) { 
     750        NSString                *type = [pasteboard availableTypeFromArray:SUPPORTED_DRAG_TYPE_ARRAY]; 
     751        NSString                *superclassType = [pasteboard availableTypeFromArray:PASS_TO_SUPERCLASS_DRAG_TYPE_ARRAY]; 
     752         
     753        if (!type || superclassType) { 
    748754                [super concludeDragOperation:sender]; 
    749755        } 
     
    754760{ 
    755761        NSPasteboard    *pasteboard = [sender draggingPasteboard]; 
    756         NSString                *type = [pasteboard availableTypeFromArray:[NSArray arrayWithObjects:NSFilenamesPboardType,NSTIFFPboardType,NSPDFPboardType,NSPICTPboardType,nil]]; 
    757          
     762        NSString                *type = [pasteboard availableTypeFromArray:SUPPORTED_DRAG_TYPE_ARRAY]; 
     763        NSString                *superclassType = [pasteboard availableTypeFromArray:PASS_TO_SUPERCLASS_DRAG_TYPE_ARRAY]; 
     764 
    758765        BOOL    success = NO; 
    759         if (type) { 
     766        if (type && !superclassType) { 
    760767                NSAttributedString                      *attachString; 
    761768                NSImage                                         *img = [[[NSImage alloc] initWithPasteboard:pasteboard] autorelease];