diff --git a/src/js/controller/piskel/PiskelController.js b/src/js/controller/piskel/PiskelController.js index 1d8dc537..a66a5875 100644 --- a/src/js/controller/piskel/PiskelController.js +++ b/src/js/controller/piskel/PiskelController.js @@ -224,11 +224,13 @@ this.selectLayer(layer); }; - ns.PiskelController.prototype.removeCurrentLayer = function () { + ns.PiskelController.prototype.removeLayerAt = function (index) { if (this.getLayers().length > 1) { - var layer = this.getCurrentLayer(); - this.piskel.removeLayer(layer); - this.setCurrentLayerIndex(0); + var layer = this.getLayerAt(index); + if (layer) { + this.piskel.removeLayer(layer); + this.setCurrentLayerIndex(0); + } } }; diff --git a/src/js/controller/piskel/PublicPiskelController.js b/src/js/controller/piskel/PublicPiskelController.js index 3456fd32..1db6af95 100644 --- a/src/js/controller/piskel/PublicPiskelController.js +++ b/src/js/controller/piskel/PublicPiskelController.js @@ -123,13 +123,14 @@ }; ns.PublicPiskelController.prototype.removeCurrentLayer = function () { - this.raiseSaveStateEvent_(this.piskelController.removeCurrentLayer, []); - this.piskelController.removeCurrentLayer(); + var currentLayerIndex = this.getCurrentLayerIndex(); + this.raiseSaveStateEvent_(this.piskelController.removeLayerAt, [currentLayerIndex]); + this.piskelController.removeLayerAt(currentLayerIndex); $.publish(Events.PISKEL_RESET); }; ns.PublicPiskelController.prototype.getCurrentLayerIndex = function () { - return this.piskelController.currentLayerIndex; + return this.piskelController.getCurrentLayerIndex(); }; ns.PublicPiskelController.prototype.getCurrentFrameIndex = function () { diff --git a/src/js/service/HistoryService.js b/src/js/service/HistoryService.js index 7f90603d..18e7c944 100644 --- a/src/js/service/HistoryService.js +++ b/src/js/service/HistoryService.js @@ -110,8 +110,10 @@ this.replayState(state); } - var lastState = this.stateQueue[index]; - this.setupState(lastState); + var lastState = this.stateQueue[index+1]; + if (lastState) { + this.setupState(lastState); + } this.currentIndex = index; $.publish(Events.PISKEL_RESET); if (originalSize !== this.getPiskelSize_()) {