From 96d428af905ce0f29f78e0efac3f59438f248c2e Mon Sep 17 00:00:00 2001 From: unsettledgames <47360416+unsettledgames@users.noreply.github.com> Date: Thu, 17 Sep 2020 12:23:56 +0200 Subject: [PATCH] Implemented layer duplication --- js/_layer.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/js/_layer.js b/js/_layer.js index a8f0ad0..e875443 100644 --- a/js/_layer.js +++ b/js/_layer.js @@ -463,10 +463,11 @@ function deleteLayer(saveHistory = true) { function duplicateLayer(event) { let layerIndex = layers.indexOf(currentLayer); let toDuplicate = currentLayer; + let menuEntries = layerList.childNodes // Increasing z-indexes of the layers above - for (let i=layerIndex + 1; i0; i--) { + getLayerByID(menuEntries[i].id).canvas.style.zIndex++; } maxZIndex++; @@ -474,7 +475,7 @@ function duplicateLayer(event) { let newCanvas = document.createElement("canvas"); // Setting up the new canvas canvasView.append(newCanvas); - newCanvas.style.zIndex = currentLayer.canvas.style.zIndex; + newCanvas.style.zIndex = parseInt(currentLayer.canvas.style.zIndex) + 1; newCanvas.classList.add("drawingCanvas"); if (!layerListEntry) return console.warn('skipping adding layer because no document'); @@ -501,6 +502,7 @@ function duplicateLayer(event) { // Copy the layer content newLayer.context.putImageData(currentLayer.context.getImageData( 0, 0, currentLayer.canvasSize[0], currentLayer.canvasSize[1]), 0, 0); + newLayer.updateLayerPreview(); // Basically "if I'm not adding a layer because redo() is telling meto do so", then I can save the history /*if (saveHistory) { new HistoryStateDuplicateLayer(newLayer, index); @@ -596,6 +598,16 @@ function moveLayers(toDropLayer, staticLayer, saveHistory = true) { } } +function getMenuEntryIndex(list, entry) { + for (let i=0; i