|
@@ -171,7 +171,7 @@ type
|
|
FBlackAndWhite: boolean;
|
|
FBlackAndWhite: boolean;
|
|
FScriptContext: TScriptContext;
|
|
FScriptContext: TScriptContext;
|
|
FToolPressure: single;
|
|
FToolPressure: single;
|
|
- FInTool, FInToolUpdate: boolean;
|
|
|
|
|
|
+ FInTool, FInToolUpdate, FInSwapFill: boolean;
|
|
FCurrentTool : TGenericTool;
|
|
FCurrentTool : TGenericTool;
|
|
FCurrentToolType : TPaintToolType;
|
|
FCurrentToolType : TPaintToolType;
|
|
FToolCurrentCursorPos: TPointF;
|
|
FToolCurrentCursorPos: TPointF;
|
|
@@ -1391,7 +1391,7 @@ end;
|
|
procedure TToolManager.BackFillChange(ASender: TObject;
|
|
procedure TToolManager.BackFillChange(ASender: TObject;
|
|
var ADiff: TCustomVectorialFillDiff);
|
|
var ADiff: TCustomVectorialFillDiff);
|
|
begin
|
|
begin
|
|
- if FInToolUpdate then exit;
|
|
|
|
|
|
+ if FInToolUpdate or FInSwapFill then exit;
|
|
ToolUpdate;
|
|
ToolUpdate;
|
|
if Assigned(FOnFillChanged) then FOnFillChanged(self);
|
|
if Assigned(FOnFillChanged) then FOnFillChanged(self);
|
|
if FBackFill.FillType = vftGradient then
|
|
if FBackFill.FillType = vftGradient then
|
|
@@ -1464,7 +1464,7 @@ end;
|
|
procedure TToolManager.ForeFillChange(ASender: TObject;
|
|
procedure TToolManager.ForeFillChange(ASender: TObject;
|
|
var ADiff: TCustomVectorialFillDiff);
|
|
var ADiff: TCustomVectorialFillDiff);
|
|
begin
|
|
begin
|
|
- if FInToolUpdate then exit;
|
|
|
|
|
|
+ if FInToolUpdate or FInSwapFill then exit;
|
|
ToolUpdate;
|
|
ToolUpdate;
|
|
if Assigned(FOnFillChanged) then FOnFillChanged(self);
|
|
if Assigned(FOnFillChanged) then FOnFillChanged(self);
|
|
if FForeFill.FillType = vftGradient then
|
|
if FForeFill.FillType = vftGradient then
|
|
@@ -2805,7 +2805,9 @@ procedure TToolManager.SwapToolColors;
|
|
var
|
|
var
|
|
tmpFill: TVectorialFill;
|
|
tmpFill: TVectorialFill;
|
|
begin
|
|
begin
|
|
|
|
+ if FInSwapFill then exit;
|
|
if FForeFill.Equals(FBackFill) then exit;
|
|
if FForeFill.Equals(FBackFill) then exit;
|
|
|
|
+ FInSwapFill:= true;
|
|
tmpFill := FForeFill.Duplicate;
|
|
tmpFill := FForeFill.Duplicate;
|
|
FForeFill.Assign(FBackFill);
|
|
FForeFill.Assign(FBackFill);
|
|
FBackFill.Assign(tmpFill);
|
|
FBackFill.Assign(tmpFill);
|
|
@@ -2821,6 +2823,7 @@ begin
|
|
FBackLastGradient := FBackFill.Gradient.Duplicate as TBGRALayerGradientOriginal;
|
|
FBackLastGradient := FBackFill.Gradient.Duplicate as TBGRALayerGradientOriginal;
|
|
end;
|
|
end;
|
|
if Assigned(FOnFillChanged) then FOnFillChanged(self);
|
|
if Assigned(FOnFillChanged) then FOnFillChanged(self);
|
|
|
|
+ FInSwapFill:= false;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TToolManager.NeedBackGradient;
|
|
procedure TToolManager.NeedBackGradient;
|