anchor.diff:    dx, dy: cint;
     child: TWindow;
     s: string;
  +  i: integer;
     lTargetWinHandle: TWindow;
     w: TfpgX11Window;
  -  lAccept: clong = 0;
  +  wg: TfpgWidget;
     msgp: TfpgMessageParams;
  +  lDragEnterEvent: TfpgDragEnterEvent;
  +  lDropAction: TfpgDropAction;
  +  lAccept: Boolean;
  +  lMimeChoice: TfpgString;
  +  lMimeList: TStringList;
   begin
     {$IFDEF DNDDEBUG}
     writeln('XdndPosition event received!');
     {$ENDIF}
  +  lAccept := False;
     FSrcWinHandle := ASource;
     FActionType   := AAction;
     FSrcTimeStamp := ATimeStamp;
     lTargetWinHandle := ATopLevelWindow.WinHandle;
  -  if ATopLevelWindow is TfpgWidget then      // TODO: We could use Interfaces here eg: IDragDropEnabled
  -    if TfpgWidget(ATopLevelWindow).AcceptDrops then
  -      lAccept := 1;
  +  lMimeChoice := 'text/plain';
   
     {$IFDEF DNDDEBUG}
     s := XGetAtomName(FDisplay, AAction);
  
positive.code:         end;
        end;
      end;
    end
    else
    begin
      if FLastDropTarget <> lTargetWinHandle then
      begin
        fillchar(msgp, sizeof(msgp), 0);
        fpgPostMessage(nil, FindWindowByHandle(FLastDropTarget), FPGM_DROPEXIT, msgp);
      end;
      FLastDropTarget := lTargetWinHandle;
    end;
  
  
    // send message to confirm drop will be accepted in specified rectangle
    FillChar(Msg, SizeOf(Msg), 0);
  
negative.code:   xfd: integer;
    KeySym: TKeySym;
    Popup: TfpgWidget;
    needToWait: boolean;
  
    // debug purposes only
  