anchor.diff:    r: TfpgRect;
   begin
     r.SetRect(0, 0, Width, Height);
  -  if PtInRect(r, Point(x, y)) and FOnClickPending then
  +  if PtInRect(r, Point(x, y)) and FOnClickPending and (self = uMouseDownSourceWidget) then
     begin
       if Assigned(FOnClick) then
       FOnClick(self);
  
positive.code:   case msg.Params.mouse.Buttons of
      MOUSE_LEFT:
        begin
          FDragStartPos.SetPoint(msg.Params.mouse.x, msg.Params.mouse.y);
          mb := mbLeft;
          HandleLMouseDown(msg.Params.mouse.x, msg.Params.mouse.y, msg.Params.mouse.shiftstate);
  
negative.code:   uLastClickWidget: TfpgWidget;
    uLastClickPoint: TPoint;
    uLastClickTime: DWord;
    uMouseDownSourceWidget: TfpgWidget; { widget Left MButton was pressed on }
  
  
  function FindKeyboardFocus: TfpgWidget;
  