mirror of
https://github.com/scratchfoundation/scratch-paint.git
synced 2024-12-23 05:52:42 -05:00
MIN_SCALE_FACTOR & clamping instead of halting
This commit is contained in:
parent
e44127b492
commit
0f24b4b6b5
1 changed files with 6 additions and 8 deletions
|
@ -3,6 +3,8 @@ import {getItems} from '../selection';
|
|||
import {getActionBounds} from '../view';
|
||||
import {BitmapModes} from '../../lib/modes';
|
||||
|
||||
const MIN_SCALE_FACTOR = 0.0001;
|
||||
|
||||
/**
|
||||
* Tool to handle scaling items by pulling on the handles around the edges of the bounding
|
||||
* box when in the bounding box tool.
|
||||
|
@ -114,19 +116,15 @@ class ScaleTool {
|
|||
sy = size.y / this.origSize.y;
|
||||
}
|
||||
|
||||
const signx = sx > 0 ? 1 : -1;
|
||||
const signy = sy > 0 ? 1 : -1;
|
||||
if (this.isCorner && !event.modifiers.shift) {
|
||||
const signx = sx > 0 ? 1 : -1;
|
||||
const signy = sy > 0 ? 1 : -1;
|
||||
sx = sy = Math.max(Math.abs(sx), Math.abs(sy));
|
||||
sx *= signx;
|
||||
sy *= signy;
|
||||
}
|
||||
if (Math.abs(sx) < 0.0001) {
|
||||
sx = this.lastSx;
|
||||
}
|
||||
if (Math.abs(sy) < 0.0001) {
|
||||
sy = this.lastSy;
|
||||
}
|
||||
sx = signx * Math.max(Math.abs(sx), MIN_SCALE_FACTOR);
|
||||
sy = signy * Math.max(Math.abs(sy), MIN_SCALE_FACTOR);
|
||||
this.itemGroup.scale(sx / this.lastSx, sy / this.lastSy, this.pivot);
|
||||
if (this.selectionAnchor) {
|
||||
this.selectionAnchor.scale(this.lastSx / sx, this.lastSy / sy);
|
||||
|
|
Loading…
Reference in a new issue