Browse Source

#451 ignore color when alpha 0 with solid color

circular17 3 năm trước cách đây
mục cha
commit
a3e1b9d825
1 tập tin đã thay đổi với 9 bổ sung1 xóa
  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;