|
|
|
@ -10356,7 +10356,7 @@ class App extends React.Component<AppProps, AppState> {
|
|
|
|
|
const [x, y] = getGridPoint(
|
|
|
|
|
pointerCoords.x - pointerDownState.resize.offset.x,
|
|
|
|
|
pointerCoords.y - pointerDownState.resize.offset.y,
|
|
|
|
|
this.getEffectiveGridSize(),
|
|
|
|
|
event[KEYS.CTRL_OR_CMD] ? null : this.getEffectiveGridSize(),
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const croppingElement = this.scene
|
|
|
|
@ -10382,6 +10382,28 @@ class App extends React.Component<AppProps, AppState> {
|
|
|
|
|
image &&
|
|
|
|
|
!(image instanceof Promise)
|
|
|
|
|
) {
|
|
|
|
|
const [gridX, gridY] = getGridPoint(
|
|
|
|
|
pointerCoords.x,
|
|
|
|
|
pointerCoords.y,
|
|
|
|
|
event[KEYS.CTRL_OR_CMD] ? null : this.getEffectiveGridSize(),
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const dragOffset = {
|
|
|
|
|
x: gridX - pointerDownState.originInGrid.x,
|
|
|
|
|
y: gridY - pointerDownState.originInGrid.y,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
this.maybeCacheReferenceSnapPoints(event, [croppingElement]);
|
|
|
|
|
|
|
|
|
|
const { snapOffset, snapLines } = snapResizingElements(
|
|
|
|
|
[croppingElement],
|
|
|
|
|
[croppingAtStateStart],
|
|
|
|
|
this,
|
|
|
|
|
event,
|
|
|
|
|
dragOffset,
|
|
|
|
|
transformHandleType,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
mutateElement(
|
|
|
|
|
croppingElement,
|
|
|
|
|
cropElement(
|
|
|
|
@ -10389,8 +10411,8 @@ class App extends React.Component<AppProps, AppState> {
|
|
|
|
|
transformHandleType,
|
|
|
|
|
image.naturalWidth,
|
|
|
|
|
image.naturalHeight,
|
|
|
|
|
x,
|
|
|
|
|
y,
|
|
|
|
|
x + snapOffset.x,
|
|
|
|
|
y + snapOffset.y,
|
|
|
|
|
event.shiftKey
|
|
|
|
|
? croppingAtStateStart.width / croppingAtStateStart.height
|
|
|
|
|
: undefined,
|
|
|
|
@ -10410,6 +10432,7 @@ class App extends React.Component<AppProps, AppState> {
|
|
|
|
|
|
|
|
|
|
this.setState({
|
|
|
|
|
isCropping: transformHandleType && transformHandleType !== "rotation",
|
|
|
|
|
snapLines,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|