Merge pull request #594 from paulkaplan/select-other-sprites-after-delete
Select the last target instead of the first after deleting
This commit is contained in:
commit
f968edec54
1 file changed
+4
-1
@@ -364,6 +364,8 @@ class VirtualMachine extends EventEmitter {
|
||||
*/
|
||||
deleteSprite (targetId) {
|
||||
const target = this.runtime.getTargetById(targetId);
|
||||
const targetIndexBeforeDelete = this.runtime.targets.map(t => t.id).indexOf(target.id);
|
||||
|
||||
if (target) {
|
||||
if (!target.isSprite()) {
|
||||
throw new Error('Cannot delete non-sprite targets.');
|
||||
@@ -379,7 +381,8 @@ class VirtualMachine extends EventEmitter {
|
||||
this.runtime.disposeTarget(sprite.clones[i]);
|
||||
// Ensure editing target is switched if we are deleting it.
|
||||
if (clone === currentEditingTarget) {
|
||||
this.setEditingTarget(this.runtime.targets[0].id);
|
||||
const nextTargetIndex = Math.min(this.runtime.targets.length - 1, targetIndexBeforeDelete);
|
||||
this.setEditingTarget(this.runtime.targets[nextTargetIndex].id);
|
||||
}
|
||||
}
|
||||
// Sprite object should be deleted by GC.
|
||||
|
||||
Reference in new issue
Block a user