Skip to content

Commit

Permalink
Unselect already selected sprite when shift is held
Browse files Browse the repository at this point in the history
  • Loading branch information
yeoji committed Dec 21, 2023
1 parent 3a29aa6 commit ce26b56
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 8 deletions.
21 changes: 15 additions & 6 deletions src/spritecow/SpriteCanvasView.js
Original file line number Diff line number Diff line change
Expand Up @@ -268,20 +268,29 @@ SpriteCanvasViewProto._setCurrentRect = function(rect) {
};

SpriteCanvasViewProto._handleSelectedSprite = function(clickedRect, spriteRect) {
const highlight = new Highlight(this._$container);
highlight.moveTo(clickedRect); // move to clicked area so the animation starts from click position

const selected = new SelectedSprite(spriteRect, highlight);
if(isKeyDown(SHIFT_KEY)) {
this._selectedSprites.push(selected);
const alreadySelectedSpriteIndex = this._selectedSprites.findIndex(sprite => JSON.stringify(sprite.rect) == JSON.stringify(spriteRect));
if(alreadySelectedSpriteIndex > -1) {
this._selectedSprites[alreadySelectedSpriteIndex].unselect();
this._selectedSprites.splice(alreadySelectedSpriteIndex, 1);
} else {
this._selectedSprites.push(this._selectSprite(clickedRect, spriteRect));
}
} else {
this._unselectAllSprites();
this._selectedSprites = [selected];
this._selectedSprites = [this._selectSprite(clickedRect, spriteRect)];
}

this._setCurrentRect(spriteRect);
}

SpriteCanvasViewProto._selectSprite = function(clickedRect, spriteRect) {
const highlight = new Highlight(this._$container);
highlight.moveTo(clickedRect); // move to clicked area so the animation starts from click position

return new SelectedSprite(spriteRect, highlight);
}

SpriteCanvasViewProto._unselectAllSprites = function() {
this._selectedSprites.forEach(sprite => sprite.unselect());
}
Expand Down
2 changes: 0 additions & 2 deletions src/spritecow/extension/SelectedSprite.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import Rect from '../Rect';

class SelectedSprite {
constructor(rect, highlight) {
this.rect = rect;
Expand Down

0 comments on commit ce26b56

Please sign in to comment.