mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2024-12-22 22:12:28 -05:00
Merge pull request #1815 from paulkaplan/clear-pen-on-dispose
Clear the pen layer when runtime dispose happens.
This commit is contained in:
commit
ff3391718d
3 changed files with 21 additions and 0 deletions
|
@ -627,6 +627,14 @@ class Runtime extends EventEmitter {
|
|||
return 'RUNTIME_STARTED';
|
||||
}
|
||||
|
||||
/**
|
||||
* Event name when the runtime dispose has been called.
|
||||
* @const {string}
|
||||
*/
|
||||
static get RUNTIME_DISPOSED () {
|
||||
return 'RUNTIME_DISPOSED';
|
||||
}
|
||||
|
||||
/**
|
||||
* Event name for reporting that a block was updated and needs to be rerendered.
|
||||
* @const {string}
|
||||
|
@ -1548,6 +1556,7 @@ class Runtime extends EventEmitter {
|
|||
this.stopAll();
|
||||
this.targets.map(this.disposeTarget, this);
|
||||
this._monitorState = OrderedMap({});
|
||||
this.emit(Runtime.RUNTIME_DISPOSED);
|
||||
// @todo clear out extensions? turboMode? etc.
|
||||
|
||||
// *********** Cloud *******************
|
||||
|
|
|
@ -67,6 +67,7 @@ class Scratch3PenBlocks {
|
|||
this._onTargetMoved = this._onTargetMoved.bind(this);
|
||||
|
||||
runtime.on('targetWasCreated', this._onTargetCreated);
|
||||
runtime.on('RUNTIME_DISPOSED', this.clear.bind(this));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -239,3 +239,14 @@ test('setCompatibilityMode does not restart if it was not running', t => {
|
|||
t.equal(started, false);
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('Disposing the runtime emits an event', t => {
|
||||
let disposed = false;
|
||||
const rt = new Runtime();
|
||||
rt.addListener('RUNTIME_DISPOSED', () => {
|
||||
disposed = true;
|
||||
});
|
||||
rt.dispose();
|
||||
t.equal(disposed, true);
|
||||
t.end();
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue