anchor.diff:      FLastDropTarget: TfpgWinHandle;
       FDropPos: TPoint;
       FDrag: TfpgX11Drag;
  +    { X11 window grouping }
  +    FLeaderWindow: TfpgWinHandle;
  +    FClientLeaderAtom: TAtom;
       procedure   SetDrag(const AValue: TfpgX11Drag);
       function    ConvertShiftState(AState: Cardinal): TShiftState;
       function    KeySymToKeycode(KeySym: TKeySym): Word;
  
positive.code:     WMHints^.icon_pixmap := IconPixmap;
      WMHints^.flags := IconPixmapHint;
  
  //    XSetWMProperties(fpgApplication.Display, FWinHandle, nil, nil, nil, 0, nil, nil, nil);
      XSetWMProperties(fpgApplication.Display, FWinHandle, nil, nil, nil, 0, nil, WMHints, nil);
      fpgApplication.netlayer.WindowSetPID(FWinHandle, GetProcessID);
      fpgApplication.netlayer.WindowSetSupportPING(FWinHandle);
  
  
negative.code:   end
    else
      Result := None;
  end;
  
  procedure SetWindowGroup(AWindow: TfpgWinHandle);
  var
    ClassHint: PXClassHint;
  begin
    ClassHint := XAllocClassHint;
    ClassHint^.res_name := PChar(fpgGetExecutableName);
    ClassHint^.res_class := PChar(ApplicationName);
    XSetClassHint(xapplication.display, AWindow, ClassHint);
    XFree(ClassHint);
  end;
  
  // File utils
  