Fix: copy and past to add support for multiple selected objects
This commit is contained in:
@@ -699,33 +699,42 @@ export const DockBuilder = () => {
|
|||||||
const CopySelection = () => {
|
const CopySelection = () => {
|
||||||
const activeObject = editorMemo.getActiveObject();
|
const activeObject = editorMemo.getActiveObject();
|
||||||
if (activeObject) {
|
if (activeObject) {
|
||||||
activeObject.clone(function (cloned) {
|
activeObject.clone(
|
||||||
|
function (cloned) {
|
||||||
|
clipboard = cloned;
|
||||||
|
},
|
||||||
// Ensure dockData is copied
|
// Ensure dockData is copied
|
||||||
if (activeObject.dockData) {
|
["dockData"]
|
||||||
cloned.dockData = { ...activeObject.dockData };
|
);
|
||||||
}
|
|
||||||
clipboard = cloned;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const PasteSelection = () => {
|
const PasteSelection = () => {
|
||||||
if (clipboard) {
|
if (clipboard) {
|
||||||
clipboard.clone(function (clonedObj) {
|
clipboard.clone(
|
||||||
|
function (clonedObj) {
|
||||||
|
// Offset the pasted object so it's visible
|
||||||
|
clonedObj.set({
|
||||||
|
left: clonedObj.left + 20,
|
||||||
|
top: clonedObj.top + 20,
|
||||||
|
evented: true,
|
||||||
|
});
|
||||||
|
// Add support for multiple selected objects
|
||||||
|
if (clonedObj.type === "activeSelection") {
|
||||||
|
clonedObj.canvas = editorMemo;
|
||||||
|
clonedObj.forEachObject(function (obj) {
|
||||||
|
editorMemo.add(obj);
|
||||||
|
});
|
||||||
|
clonedObj.setCoords();
|
||||||
|
} else {
|
||||||
|
editorMemo.add(clonedObj);
|
||||||
|
}
|
||||||
|
editorMemo.setActiveObject(clonedObj);
|
||||||
|
editorMemo.requestRenderAll();
|
||||||
|
},
|
||||||
// Ensure dockData is copied
|
// Ensure dockData is copied
|
||||||
if (clipboard.dockData) {
|
["dockData"]
|
||||||
clonedObj.dockData = { ...clipboard.dockData };
|
);
|
||||||
}
|
|
||||||
// Offset the pasted object so it's visible
|
|
||||||
clonedObj.set({
|
|
||||||
left: (clonedObj.left || 0) + 20,
|
|
||||||
top: (clonedObj.top || 0) + 20,
|
|
||||||
evented: true,
|
|
||||||
});
|
|
||||||
editorMemo.add(clonedObj);
|
|
||||||
editorMemo.setActiveObject(clonedObj);
|
|
||||||
editorMemo.requestRenderAll();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user