anchor.diff:  
     FWhiteAreaPercent := WhiteAreaPercent;
     Invalidate;
  +end;
  +
  +procedure TfpgColorWheel.SetBackgroundColor(const AValue: TfpgColor);
  +begin
  +  FRecalcWheel := True;
  +  inherited SetBackgroundColor(AValue);
   end;
   
   procedure TfpgColorWheel.Notification(AComponent: TComponent; Operation: TOperation);
  
positive.code:     FWhiteAreaPercent: longint; // 0 to 50 percent of circle radius that is pure white
      FOnChange: TNotifyEvent;
      FImage: TfpgImage; // cached colorwheel image
      procedure   HSFromPoint(X, Y: longint; out H: longint; out S: double);
      procedure   DrawCursor;
      procedure   SetMarginWidth(NewWidth: longint);
      procedure   SetCursorSize(NewSize: longint);
      procedure   SetValueBar(AValueBar: TfpgValueBar);
      procedure   SetWhiteAreaPercent(WhiteAreaPercent: longint);
      procedure   Notification(AComponent: TComponent; Operation: TOperation); override;
      function    DrawWidth: longint;
      function    DrawHeight: longint;
  
negative.code:     Exit;  //==>
    end;
  
    if (FImage = nil) or FRecalcWheel then
    begin
      // we must only do this when needed, because it's very slow
      if FImage <> nil then
        FImage.Free;
      FImage := TfpgImage.Create;
      FImage.AllocateImage(32, DrawWidth, DrawHeight);
      FImage.UpdateImage;
  