diff --git a/README.md b/README.md index 09ce2bd..a76f77e 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ ComfyUI canvas editor page ## Updates + - 2023-12-4 Added hotkeys for Brush Radius, Added Duplicate Layer button. Ctrl-Click duplicates the target layer. - 2023-12-2 Added Trigger Queue on change toggle. - 2023-11-30 Added "Replace Targeted Layer" as an input mode, right click on a layer to set it as target to be replaced diff --git a/web/page/bspaint.js b/web/page/bspaint.js index 4e12bab..3d6a429 100644 --- a/web/page/bspaint.js +++ b/web/page/bspaint.js @@ -393,6 +393,22 @@ function createDrawArea(canvas = blankCanvas()) { this.updateLayerList(newList); return newLayer; }, + addDuplicateLayer(layer) { + if (!layer) { + return this.addEmptyLayer(); + } else { + // Duplicate the provided layer + const newLayer = new Layer(this, layer.title, {width: layer.canvas.width, height: layer.canvas.height}, layer.mask); + newLayer.ctx.drawImage(layer.canvas, 0, 0); // Copy the content of the original layer + newLayer.visible = layer.visible; + newLayer.compositeOperation = layer.compositeOperation; + newLayer.opacity = layer.opacity; + const newList = [...this.layers, newLayer]; + this.updateLayerList(newList); + return newLayer; + } + + }, removeLayer(layer = this.activeLayer) { const newList = layers.filter(l => l !== layer); this.updateLayerList(newList); @@ -1035,8 +1051,9 @@ function poulateLayerControl() {