mirror of
https://github.com/lospec/pixel-editor.git
synced 2023-08-10 21:12:51 +03:00
Fixed bug when undoing layer add
Also created nAppLayers to save the number of layers used by the editor (and that the use can't directly with).
This commit is contained in:
parent
a205b24742
commit
034715fac8
@ -8,7 +8,7 @@ function clickedColor (e){
|
|||||||
if (selectedColor) selectedColor.classList.remove('selected');
|
if (selectedColor) selectedColor.classList.remove('selected');
|
||||||
|
|
||||||
//set current color
|
//set current color
|
||||||
for (let i=1; i<layers.length - 2; i++) {
|
for (let i=1; i<layers.length - nAppLayers; i++) {
|
||||||
layers[i].context.fillStyle = this.style.backgroundColor;
|
layers[i].context.fillStyle = this.style.backgroundColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ function colorChanged(e) {
|
|||||||
|
|
||||||
//if this is the current color, update the drawing color
|
//if this is the current color, update the drawing color
|
||||||
if (e.target.colorElement.parentElement.classList.contains('selected')) {
|
if (e.target.colorElement.parentElement.classList.contains('selected')) {
|
||||||
for (let i=1; i<layers.length - 2; i++) {
|
for (let i=1; i<layers.length - nAppLayers; i++) {
|
||||||
layers[i].context.fillStyle = '#'+ rgbToHex(newColor.r,newColor.g,newColor.b);
|
layers[i].context.fillStyle = '#'+ rgbToHex(newColor.r,newColor.g,newColor.b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ function HistoryStateFlattenAll(nFlattened) {
|
|||||||
this.nFlattened = nFlattened;
|
this.nFlattened = nFlattened;
|
||||||
|
|
||||||
this.undo = function() {
|
this.undo = function() {
|
||||||
for (let i=0; i<this.nFlattened - 2; i++) {
|
for (let i=0; i<this.nFlattened - nAppLayers; i++) {
|
||||||
undo();
|
undo();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,7 +132,7 @@ function HistoryStateFlattenAll(nFlattened) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.redo = function() {
|
this.redo = function() {
|
||||||
for (let i=0; i<this.nFlattened - 2; i++) {
|
for (let i=0; i<this.nFlattened - nAppLayers; i++) {
|
||||||
redo();
|
redo();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -292,8 +292,16 @@ function HistoryStateAddLayer(layerData, index) {
|
|||||||
this.index = index;
|
this.index = index;
|
||||||
|
|
||||||
this.undo = function() {
|
this.undo = function() {
|
||||||
|
console.log("uo");
|
||||||
|
|
||||||
redoStates.push(this);
|
redoStates.push(this);
|
||||||
layers[this.index + 1].selectLayer();
|
if (layers.length - nAppLayers > this.index + 1) {
|
||||||
|
layers[this.index + 1].selectLayer();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
layers[this.index - 1].selectLayer();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
this.added.canvas.remove();
|
this.added.canvas.remove();
|
||||||
this.added.menuEntry.remove();
|
this.added.menuEntry.remove();
|
||||||
|
@ -104,7 +104,7 @@ class Layer {
|
|||||||
|
|
||||||
hover() {
|
hover() {
|
||||||
// Hide all the layers but the current one
|
// Hide all the layers but the current one
|
||||||
for (let i=1; i<layers.length - 2; i++) {
|
for (let i=1; i<layers.length - nAppLayers; i++) {
|
||||||
if (layers[i] !== this) {
|
if (layers[i] !== this) {
|
||||||
layers[i].canvas.style.opacity = 0.3;
|
layers[i].canvas.style.opacity = 0.3;
|
||||||
}
|
}
|
||||||
@ -113,7 +113,7 @@ class Layer {
|
|||||||
|
|
||||||
unhover() {
|
unhover() {
|
||||||
// Show all the layers again
|
// Show all the layers again
|
||||||
for (let i=1; i<layers.length - 2; i++) {
|
for (let i=1; i<layers.length - nAppLayers; i++) {
|
||||||
if (layers[i] !== this) {
|
if (layers[i] !== this) {
|
||||||
layers[i].canvas.style.opacity = 1;
|
layers[i].canvas.style.opacity = 1;
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ function newPixel (width, height, editorMode, fileContent = null) {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let nLayers = layers.length;
|
let nLayers = layers.length;
|
||||||
for (let i=2; i < layers.length - 2; i++) {
|
for (let i=2; i < layers.length - nAppLayers; i++) {
|
||||||
let currentEntry = layers[i].menuEntry;
|
let currentEntry = layers[i].menuEntry;
|
||||||
let associatedLayer;
|
let associatedLayer;
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ function newPixel (width, height, editorMode, fileContent = null) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Removing the old layers from the list
|
// Removing the old layers from the list
|
||||||
for (let i=2; i<nLayers - 2; i++) {
|
for (let i=2; i<nLayers - nAppLayers; i++) {
|
||||||
layers.splice(2, 1);
|
layers.splice(2, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,6 +70,7 @@ function newPixel (width, height, editorMode, fileContent = null) {
|
|||||||
layers.push(currentLayer);
|
layers.push(currentLayer);
|
||||||
layers.push(VFXLayer);
|
layers.push(VFXLayer);
|
||||||
layers.push(TMPLayer);
|
layers.push(TMPLayer);
|
||||||
|
layers.push(pixelGrid);
|
||||||
}
|
}
|
||||||
|
|
||||||
//remove current palette
|
//remove current palette
|
||||||
@ -113,6 +114,7 @@ function newPixel (width, height, editorMode, fileContent = null) {
|
|||||||
|
|
||||||
//fill background of canvas with bg color
|
//fill background of canvas with bg color
|
||||||
fillCheckerboard();
|
fillCheckerboard();
|
||||||
|
fillPixelGrid();
|
||||||
|
|
||||||
//reset undo and redo states
|
//reset undo and redo states
|
||||||
undoStates = [];
|
undoStates = [];
|
||||||
|
@ -1 +1,5 @@
|
|||||||
pixelGridCanvas = document.getElementById("pixel-grid");
|
pixelGridCanvas = document.getElementById("pixel-grid");
|
||||||
|
|
||||||
|
function fillPixelGrid() {
|
||||||
|
|
||||||
|
}
|
@ -110,7 +110,7 @@ function resizeCanvas(event, size) {
|
|||||||
|
|
||||||
// Regenerate the checkerboard
|
// Regenerate the checkerboard
|
||||||
fillCheckerboard();
|
fillCheckerboard();
|
||||||
|
fillPixelGrid();
|
||||||
// Put the imageDatas in the right position
|
// Put the imageDatas in the right position
|
||||||
switch (rcPivot)
|
switch (rcPivot)
|
||||||
{
|
{
|
||||||
|
@ -37,4 +37,9 @@ var TMPCanvas = document.getElementById('tmp-canvas');
|
|||||||
// Pixel grid layer
|
// Pixel grid layer
|
||||||
var pixelGrid;
|
var pixelGrid;
|
||||||
// Pixel grid canvas
|
// Pixel grid canvas
|
||||||
var pixelGridCanvas;
|
var pixelGridCanvas;
|
||||||
|
|
||||||
|
// Index of the first layer the user can use in the layers array
|
||||||
|
var firstUserLayerIndex = 2;
|
||||||
|
// Number of layers that are only used by the editor
|
||||||
|
var nAppLayers = 3;
|
Loading…
x
Reference in New Issue
Block a user