mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2025-01-08 22:11:59 -05:00
Clear the pen layer when runtime dispose happens.
This commit is contained in:
parent
122443a75f
commit
6bd2307c99
3 changed files with 21 additions and 0 deletions
|
@ -626,6 +626,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}
|
||||
|
@ -1547,6 +1555,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.start();
|
||||
t.equal(disposed, true);
|
||||
t.end();
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue