|
@@ -87,6 +87,7 @@ type
|
|
FDownHandled,FRectEditorCapture,FLayerOriginalCapture,
|
|
FDownHandled,FRectEditorCapture,FLayerOriginalCapture,
|
|
FLeftButton,FRightButton: boolean;
|
|
FLeftButton,FRightButton: boolean;
|
|
FLastPos: TPointF;
|
|
FLastPos: TPointF;
|
|
|
|
+ FOriginalLayerId: integer;
|
|
FOriginalRect: TRectShape;
|
|
FOriginalRect: TRectShape;
|
|
FOriginalRectUntransformed: TRectF;
|
|
FOriginalRectUntransformed: TRectF;
|
|
FRectEditor: TBGRAOriginalEditor;
|
|
FRectEditor: TBGRAOriginalEditor;
|
|
@@ -823,6 +824,8 @@ var
|
|
orig, xAxis, yAxis: TPointF;
|
|
orig, xAxis, yAxis: TPointF;
|
|
viewMatrix: TAffineMatrix;
|
|
viewMatrix: TAffineMatrix;
|
|
begin
|
|
begin
|
|
|
|
+ if Assigned(FOriginalRect) and (FOriginalLayerId <> Manager.Image.LayerId[Manager.Image.CurrentLayerIndex]) then
|
|
|
|
+ StopEdit(false,false);
|
|
with LayerOffset do
|
|
with LayerOffset do
|
|
begin
|
|
begin
|
|
orig := BitmapToVirtualScreen(PointF(-X,-Y));
|
|
orig := BitmapToVirtualScreen(PointF(-X,-Y));
|
|
@@ -947,7 +950,7 @@ end;
|
|
function TEditShapeTool.GetEditMode: TEditShapeMode;
|
|
function TEditShapeTool.GetEditMode: TEditShapeMode;
|
|
begin
|
|
begin
|
|
if Assigned(FSelectionRect) then exit(esmSelection)
|
|
if Assigned(FSelectionRect) then exit(esmSelection)
|
|
- else if Assigned(FOriginalRect) then exit(esmOtherOriginal)
|
|
|
|
|
|
+ else if Assigned(FOriginalRect) and (FOriginalLayerId = Manager.Image.LayerId[Manager.Image.CurrentLayerIndex]) then exit(esmOtherOriginal)
|
|
else
|
|
else
|
|
case GetCurrentLayerKind of
|
|
case GetCurrentLayerKind of
|
|
lkGradient: if FIsEditingGradient then exit(esmGradient) else exit(esmNone);
|
|
lkGradient: if FIsEditingGradient then exit(esmGradient) else exit(esmNone);
|
|
@@ -1204,6 +1207,7 @@ begin
|
|
FOriginalRectUntransformed := rectF(Left,Top,Right,Bottom);
|
|
FOriginalRectUntransformed := rectF(Left,Top,Right,Bottom);
|
|
FOriginalRect := CreateRect(FOriginalRectUntransformed,
|
|
FOriginalRect := CreateRect(FOriginalRectUntransformed,
|
|
Manager.Image.LayerOriginalMatrix[Manager.Image.CurrentLayerIndex]);
|
|
Manager.Image.LayerOriginalMatrix[Manager.Image.CurrentLayerIndex]);
|
|
|
|
+ FOriginalLayerId:= Manager.Image.LayerId[Manager.Image.CurrentLayerIndex];
|
|
result := OnlyRenderChange;
|
|
result := OnlyRenderChange;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|