Ensure increasing ordinals of new masks

This commit is contained in:
Abdo 2024-04-11 20:43:26 +03:00
parent 0334f4ff77
commit dedfeec9ad
5 changed files with 11 additions and 7 deletions

View file

@ -119,7 +119,7 @@ export const drawEllipse = (canvas: fabric.Canvas): void => {
ellipse.setCoords();
canvas.setActiveObject(ellipse);
undoStack.onObjectAdded(ellipse.id);
undoStack.onObjectAdded(ellipse);
ellipse = undefined;
});
};

View file

@ -203,7 +203,7 @@ const generatePolygon = (canvas: fabric.Canvas, pointsList): void => {
canvas.add(polygon);
canvas.setActiveObject(polygon);
// view undo redo tools
undoStack.onObjectAdded(polygon["id"]);
undoStack.onObjectAdded(polygon);
}
toggleDrawPolygon(canvas);

View file

@ -114,7 +114,7 @@ export const drawRectangle = (canvas: fabric.Canvas): void => {
rect.setCoords();
canvas.setActiveObject(rect);
undoStack.onObjectAdded(rect.id);
undoStack.onObjectAdded(rect);
rect = undefined;
});
};

View file

@ -50,7 +50,7 @@ export const drawText = (canvas: fabric.Canvas): void => {
enableUniformScaling(canvas, text);
canvas.add(text);
canvas.setActiveObject(text);
undoStack.onObjectAdded(text.id);
undoStack.onObjectAdded(text);
text.selectAll();
});

View file

@ -95,11 +95,15 @@ class UndoStack {
});
}
onObjectAdded(id: string): void {
if (!this.shapeIds.has(id)) {
onObjectAdded(shape: fabric.Object): void {
if (!this.shapeIds.has(shape.id)) {
this.push();
}
this.shapeIds.add(id);
this.shapeIds.add(shape.id);
if (shape.type !== "i-text") {
const ordinals = this.canvas!.getObjects().filter(shape => shape.ordinal).map(shape => shape.ordinal);
shape.ordinal = Math.max(...ordinals, 0) + 1;
}
emitChangeSignal();
}