anchor.diff:      FAcceptedAction: TAtom;
       FMimeTypesArray: array of TAtom;
       xia_plain_text: TAtom;
  +    procedure   SetTypeListProperty;
       procedure   InitializeMimeTypesToAtoms;
       procedure   Dragging(ev: TXEvent);
       function    IsDNDAware(win: TWindow): boolean;
  
positive.code:     i := 0;
    xev.xclient.data.l[1] := i or (FUseVersion shl 24);
  
    InitializeMimeTypesToAtoms;
    { TODO: currently we limit ourselves to 3 mime types max. Fix this later }
    for i := 0 to 2 do
    begin
      if i < n then
        xev.xclient.data.l[2+i] := FMimeTypesArray[i]
      else
        xev.xclient.data.l[2+i] := x.None;
    end;
  
    XSendEvent(xapplication.Display, ATarget, False, NoEventMask, @xev);
  
negative.code:     xia_plain_text := XInternAtom(xapplication.Display, 'text/plain', TBool(False));
      FProposedAction := xapplication.GetAtomFromDropAction(ADefaultAction);
      xapplication.Drag := self;
  
      XSetSelectionOwner(xapplication.Display, xapplication.XdndSelection, FSource.WinHandle, CurrentTime);
      win := XGetSelectionOwner(xapplication.Display, xapplication.XdndSelection);
      if win <> FSource.WinHandle then
        raise Exception.Create('fpGUI/X11: Application failed to aquire selection owner status');
  
      InitializeMimeTypesToAtoms;
      if FMimeData.FormatCount > 3 then
        SetTypeListProperty;
    end;
  end;
  
  