Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2273623

Browse files
committed
Disable rotation globally
As described on fabricjs/fabric.js#6420 (comment) Fixes rotation marker appearing when selecting, and when ungrouping
1 parent 252addf commit 2273623

File tree

7 files changed

+8
-25
lines changed

7 files changed

+8
-25
lines changed

ts/image-occlusion/mask-editor.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ function initCanvas(onChange: () => void): fabric.Canvas {
103103
// Disable uniform scaling
104104
canvas.uniformScaling = false;
105105
canvas.uniScaleKey = "none";
106+
// disable rotation globally
107+
delete fabric.Object.prototype.controls.mtr;
106108
moveShapeToCanvasBoundaries(canvas);
107109
canvas.on("object:modified", (evt) => {
108110
if (evt.target instanceof fabric.Polygon) {

ts/image-occlusion/tools/from-shapes.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,14 @@
44
import { fabric } from "fabric";
55
import type { Shape } from "image-occlusion/shapes";
66

7-
import { addBorder, disableRotation, enableUniformScaling } from "./lib";
7+
import { addBorder, enableUniformScaling } from "./lib";
88

99
export const addShape = (
1010
canvas: fabric.Canvas,
1111
shape: Shape,
1212
): void => {
1313
const fabricShape = shape.toFabric(canvas);
1414
addBorder(fabricShape);
15-
disableRotation(fabricShape);
1615
if (fabricShape.type === "i-text") {
1716
enableUniformScaling(canvas, fabricShape);
1817
}
@@ -28,7 +27,6 @@ export const addShapeGroup = (
2827
const fabricShape = shape.toFabric(canvas);
2928
addBorder(fabricShape);
3029
group.addWithUpdate(fabricShape);
31-
disableRotation(group);
3230
});
3331
canvas.add(group);
3432
};

ts/image-occlusion/tools/lib.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ export const groupShapes = (canvas: fabric.Canvas): void => {
6060
}
6161

6262
canvas.getActiveObject().toGroup();
63+
6364
redraw(canvas);
6465
};
6566

@@ -120,7 +121,6 @@ const pasteItem = (canvas: fabric.Canvas): void => {
120121
top: clonedObj.top + 10,
121122
evented: true,
122123
});
123-
disableRotation(clonedObj);
124124

125125
if (clonedObj.type === "activeSelection") {
126126
// active selection needs a reference to the canvas.
@@ -236,12 +236,6 @@ const setShapePosition = (
236236
object.setCoords();
237237
};
238238

239-
export function disableRotation(obj: fabric.Object): void {
240-
obj.setControlsVisibility({
241-
mtr: false,
242-
});
243-
}
244-
245239
export function enableUniformScaling(canvas: fabric.Canvas, obj: fabric.Object): void {
246240
obj.setControlsVisibility({ mb: false, ml: false, mt: false, mr: false });
247241
let timer: number;

ts/image-occlusion/tools/tool-ellipse.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
import { fabric } from "fabric";
55

6-
import { BORDER_COLOR, disableRotation, SHAPE_MASK_COLOR, stopDraw } from "./lib";
6+
import { BORDER_COLOR, SHAPE_MASK_COLOR, stopDraw } from "./lib";
77
import { undoStack } from "./tool-undo-redo";
88

99
export const drawEllipse = (canvas: fabric.Canvas): void => {
@@ -38,7 +38,6 @@ export const drawEllipse = (canvas: fabric.Canvas): void => {
3838
strokeUniform: true,
3939
noScaleCache: false,
4040
});
41-
disableRotation(ellipse);
4241
canvas.add(ellipse);
4342
});
4443

ts/image-occlusion/tools/tool-polygon.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import { fabric } from "fabric";
55
import type { PanZoom } from "panzoom";
66

7-
import { BORDER_COLOR, disableRotation, SHAPE_MASK_COLOR } from "./lib";
7+
import { BORDER_COLOR, SHAPE_MASK_COLOR } from "./lib";
88
import { undoStack } from "./tool-undo-redo";
99

1010
let activeLine;
@@ -186,7 +186,6 @@ const generatePolygon = (canvas: fabric.Canvas, pointsList): void => {
186186
noScaleCache: false,
187187
});
188188
if (polygon.width > 5 && polygon.height > 5) {
189-
disableRotation(polygon);
190189
canvas.add(polygon);
191190
canvas.setActiveObject(polygon);
192191
// view undo redo tools

ts/image-occlusion/tools/tool-rect.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
import { fabric } from "fabric";
55

6-
import { BORDER_COLOR, disableRotation, SHAPE_MASK_COLOR, stopDraw } from "./lib";
6+
import { BORDER_COLOR, SHAPE_MASK_COLOR, stopDraw } from "./lib";
77
import { undoStack } from "./tool-undo-redo";
88

99
export const drawRectangle = (canvas: fabric.Canvas): void => {
@@ -39,7 +39,6 @@ export const drawRectangle = (canvas: fabric.Canvas): void => {
3939
strokeUniform: true,
4040
noScaleCache: false,
4141
});
42-
disableRotation(rect);
4342
canvas.add(rect);
4443
});
4544

ts/image-occlusion/tools/tool-text.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,7 @@
33

44
import { fabric } from "fabric";
55

6-
import {
7-
disableRotation,
8-
enableUniformScaling,
9-
stopDraw,
10-
TEXT_BACKGROUND_COLOR,
11-
TEXT_FONT_FAMILY,
12-
TEXT_PADDING,
13-
} from "./lib";
6+
import { enableUniformScaling, stopDraw, TEXT_BACKGROUND_COLOR, TEXT_FONT_FAMILY, TEXT_PADDING } from "./lib";
147
import { undoStack } from "./tool-undo-redo";
158

169
export const drawText = (canvas: fabric.Canvas): void => {
@@ -35,7 +28,6 @@ export const drawText = (canvas: fabric.Canvas): void => {
3528
backgroundColor: TEXT_BACKGROUND_COLOR,
3629
padding: TEXT_PADDING,
3730
});
38-
disableRotation(text);
3931
enableUniformScaling(canvas, text);
4032
canvas.add(text);
4133
canvas.setActiveObject(text);

0 commit comments

Comments
 (0)