--- Fred Kiefer <[EMAIL PROTECTED]> wrote: > DND will be another big step. Here a whole rewrite > is needed. When we > tried to integrate GNUstep DND with X we did get it > completely wrong the > first time.
a while back i tried getting gnustep to work as a x 'dragging source' as we call it.. it still uses the outdated xdnd code but attached is what i ended up with and a dragging destination which also uses the outdated xdnd code from gnustep.. the whole thing inside the case SelectionRequest: needs to be rewritten doesnt do any of the conversion it should (file uris should have file:// etc and other conversion methods for other stuff...) i recall there being alot more to the patch than this but this is all there seemed to be... so hopefully its all here... i also remember there being times when the code just magically didnt work.. hope it helps, dont forsee finishing it anytime soon if someone wants to pick it up... __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
xdnd-dest.tar.gz
Description: 296406374-xdnd-dest.tar.gz
Index: Source/x11/XGServerEvent.m =================================================================== --- Source/x11/XGServerEvent.m (revision 22775) +++ Source/x11/XGServerEvent.m (working copy) @@ -30,6 +30,7 @@ #include <AppKit/NSGraphics.h> #include <AppKit/NSMenu.h> #include <AppKit/NSWindow.h> +#include <AppKit/NSPasteboard.h> #include <Foundation/NSException.h> #include <Foundation/NSArray.h> #include <Foundation/NSDictionary.h> @@ -1294,10 +1295,34 @@ break; case SelectionRequest: - NSDebugLLog(@"NSEvent", @"%d SelectionRequest\n", - xEvent.xselectionrequest.requestor); + { + DndClass dnd = xdnd(); + /* ugly hack alert delete all this stuff please*/ + NSPasteboard *pb = [NSPasteboard pasteboardWithName:NSDragPboard]; + NSArray *types = [pb types]; + NSLog(@"%@", [pb types]); + NSData *data; + if ([types count]) + { + id uh = [pb propertyListForType:[types objectAtIndex:0]]; + if ([uh isKindOfClass:[NSArray class]]) + { + if ([uh count]) + { + uh = [uh objectAtIndex:0]; + + } + NSLog(@"%@", uh); + data = [uh dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; + } + xdnd_selection_send(&dnd, &xEvent.xselectionrequest, (unsigned char *)[data bytes], [data length]); + } + + NSDebugLLog(@"NSEvent", @"%d SelectionRequest\n", + xEvent.xselectionrequest.requestor); + } break; - + // We shouldn't get here unless we forgot to trap an event above default: #ifdef XSHM Index: Source/x11/XGDragView.m =================================================================== --- Source/x11/XGDragView.m (revision 22775) +++ Source/x11/XGDragView.m (working copy) @@ -276,6 +276,7 @@ break; case GSAppKitDraggingEnter: + xdnd_set_selection_owner(&dnd, dragWindev->ident, typelist[0]); xdnd_send_enter(&dnd, dWindowNumber, dragWindev->ident, typelist); xdnd_send_position(&dnd, dWindowNumber, dragWindev->ident, GSActionForDragOperation (dragMask & operationMask),
_______________________________________________ Discuss-gnustep mailing list Discuss-gnustep@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnustep