Pārlūkot izejas kodu

#451 ignore color when alpha 0 with solid color

circular17 3 gadi atpakaļ
vecāks
revīzija
a3e1b9d825
1 mainītis faili ar 9 papildinājumiem un 1 dzēšanām
  1. 9 1
      lazpaint/lazpaintinstance.pas

+ 9 - 1
lazpaint/lazpaintinstance.pas

@@ -1888,9 +1888,17 @@ begin
 end;
 
 procedure TLazPaintInstance.ColorToFChooseColor;
+var
+  c: TBGRAPixel;
 begin
   if not Assigned(FChooseColor) or InColorFromFChooseColor then exit;
-  FChooseColor.SetCurrentColor(GetColor(FChooseColor.ColorTarget));
+  c := GetColor(FChooseColor.ColorTarget);
+  if (c.alpha = 0) and (FChooseColor.ColorTarget in [ctForeColorSolid, ctBackColorSolid, ctOutlineColorSolid]) then
+  begin
+    c := FChooseColor.GetCurrentColor;
+    c.alpha := 0;
+  end;
+  FChooseColor.SetCurrentColor(c);
 end;
 
 procedure TLazPaintInstance.ExitColorEditor;