|
@@ -15,8 +15,8 @@ import { indexOf } from "lodash";
|
|
|
const MODE_SEL_RECT = 1;
|
|
|
const MODE_MOVING = 2;
|
|
|
const MODE_ROTATE = 3;
|
|
|
-const MODE_SCALE = 4;
|
|
|
-
|
|
|
+const MODE_SCALE_WIDTH = 4;
|
|
|
+const MODE_SCALE_SCALE = 5;
|
|
|
const MODE_NONE = 0;
|
|
|
|
|
|
export class SelectCtrl extends ModuleControl<EditorModule> {
|
|
@@ -190,7 +190,13 @@ export class SelectCtrl extends ModuleControl<EditorModule> {
|
|
|
} else if (this._mouseDownFlag.indexOf("move") > -1) {
|
|
|
this._state = MODE_MOVING;
|
|
|
} else if (this._mouseDownFlag.indexOf("scale") > -1) {
|
|
|
- this._state = MODE_SCALE;
|
|
|
+ this._state = MODE_SCALE_WIDTH;
|
|
|
+ if (this.store.selected.length == 1 && this.store.currComp.compKey == "Text") {//拖拽的是文本
|
|
|
+ const scaleFlags = ["scaleBottomright", "scaleBottomleft", "scaleTopleft", "scaleTopright"]
|
|
|
+ if (scaleFlags.indexOf(this._mouseDownFlag) > -1 ) {
|
|
|
+ this._state = MODE_SCALE_SCALE;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
this._movePreClientX = this._downClientX;
|
|
@@ -356,7 +362,8 @@ export class SelectCtrl extends ModuleControl<EditorModule> {
|
|
|
case MODE_ROTATE:
|
|
|
this.rotateMousemove(e);
|
|
|
break;
|
|
|
- case MODE_SCALE:
|
|
|
+ case MODE_SCALE_WIDTH:
|
|
|
+ case MODE_SCALE_SCALE:
|
|
|
this.scaleMousemove(e);
|
|
|
}
|
|
|
|
|
@@ -403,7 +410,7 @@ export class SelectCtrl extends ModuleControl<EditorModule> {
|
|
|
|
|
|
if (this._state == MODE_ROTATE) {
|
|
|
this.rotateMouseUp(e);
|
|
|
- } else if (this._state == MODE_SCALE) {
|
|
|
+ } else if (this._state == MODE_SCALE_WIDTH || this._state == MODE_SCALE_SCALE) {
|
|
|
this.scaleMouseUp(e);
|
|
|
} else if (this._state == MODE_MOVING) {
|
|
|
this.moveMouseUp(e, isClick);
|
|
@@ -829,8 +836,12 @@ export class SelectCtrl extends ModuleControl<EditorModule> {
|
|
|
if (i == -1) {
|
|
|
this.lastScale.x = dtaScale * this.initScale.x;
|
|
|
this.lastScale.y = dtaScale * this.initScale.y;
|
|
|
- // objContainer.scale(this.lastScale.x, this.lastScale.y);
|
|
|
- objContainer.scaleSize(this.lastScale.x, this.lastScale.y);
|
|
|
+
|
|
|
+ if (this._state == MODE_SCALE_SCALE) {
|
|
|
+ objContainer.scale(this.lastScale.x, this.lastScale.y);
|
|
|
+ } else {
|
|
|
+ objContainer.scaleSize(this.lastScale.x, this.lastScale.y);
|
|
|
+ }
|
|
|
} else if (i == 0 || i == 1) {
|
|
|
this.lastScale.x = dtaScale * this.initScale.x;
|
|
|
// objContainer.scaleX(this.lastScale.x);
|
|
@@ -854,13 +865,18 @@ export class SelectCtrl extends ModuleControl<EditorModule> {
|
|
|
|
|
|
const history = this.controls.historyCtrl.history;
|
|
|
this.objContainer?.setPivot(0);
|
|
|
+ const scaleMode = this._state;
|
|
|
|
|
|
history.record({
|
|
|
undo: () => {
|
|
|
console.log("undo ");
|
|
|
-
|
|
|
+
|
|
|
this.objContainer?.setPivot(scaleIndex);
|
|
|
- this.objContainer?.scaleSize(preScale.x, preScale.y);
|
|
|
+ if (scaleMode == MODE_SCALE_WIDTH) {
|
|
|
+ this.objContainer?.scaleSize(preScale.x, preScale.y);
|
|
|
+ } else {
|
|
|
+ this.objContainer?.scale(preScale.x, preScale.y);
|
|
|
+ }
|
|
|
this.objContainer?.setPivot(0);
|
|
|
this.objContainer?.updateCompState();
|
|
|
|
|
@@ -870,7 +886,11 @@ export class SelectCtrl extends ModuleControl<EditorModule> {
|
|
|
redo: () => {
|
|
|
console.log("redo ");
|
|
|
this.objContainer?.setPivot(scaleIndex);
|
|
|
- this.objContainer?.scaleSize(lastScale.x, lastScale.y);
|
|
|
+ if (scaleMode == MODE_SCALE_WIDTH) {
|
|
|
+ this.objContainer?.scaleSize(lastScale.x, lastScale.y);
|
|
|
+ } else {
|
|
|
+ this.objContainer?.scale(lastScale.x, lastScale.y);
|
|
|
+ }
|
|
|
this.objContainer?.setPivot(0);
|
|
|
this.objContainer?.updateCompState();
|
|
|
this.upgateGizmoStyle();
|