feat(CanvasManager): enhance image layer management and event handling
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { isBoolean } from "lodash-es";
|
||||
import { TransformCommand } from "../../commands/StateCommands";
|
||||
import { generateId } from "../../utils/helper";
|
||||
import { OperationType, OperationTypes } from "../../utils/layerHelper";
|
||||
@@ -577,7 +578,7 @@ export class CanvasEventManager {
|
||||
* @param {Object} options.activeLayer 当前活动图层
|
||||
* @private
|
||||
*/
|
||||
async mergeLayerObjectsForPerformance({ fabricImage, activeLayer }) {
|
||||
async mergeLayerObjectsForPerformance({ fabricImage, activeLayer, options }) {
|
||||
// 确保有命令管理器
|
||||
if (!this.layerManager || !this.layerManager.commandManager) {
|
||||
console.warn("合并对象失败:没有命令管理器");
|
||||
@@ -602,7 +603,7 @@ export class CanvasEventManager {
|
||||
|
||||
// 如果只有一个新图像且图层为空,直接添加到图层
|
||||
if (hasNewImage && !hasExistingObjects) {
|
||||
this.layerManager.addObjectToLayer(fabricImage, activeLayer.id);
|
||||
this.layerManager.addObjectToLayer(fabricImage, activeLayer.id, options);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -615,6 +616,9 @@ export class CanvasEventManager {
|
||||
fabricImage
|
||||
);
|
||||
|
||||
// 设置命令的撤销状态
|
||||
if (isBoolean(options.undoable)) command.undoable = options.undoable; // 是否撤销
|
||||
|
||||
this.layerManager?.commandManager?.execute?.(command, {
|
||||
name: `合并图层 ${activeLayer.name} 中的对象为组`,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user