send controller selection event when selection knowledge is restored from memento, https://github.com/microsoft/vscode/issues/121904

This commit is contained in:
Johannes Rieken
2021-04-22 13:14:39 +02:00
parent b3151c10ce
commit 1df9d8902c
2 changed files with 52 additions and 15 deletions

View File

@@ -4,8 +4,9 @@
*--------------------------------------------------------------------------------------------*/
import { flatten, isNonEmptyArray } from 'vs/base/common/arrays';
import { runWhenIdle } from 'vs/base/common/async';
import { Emitter, Event } from 'vs/base/common/event';
import { combinedDisposable, DisposableStore, IDisposable } from 'vs/base/common/lifecycle';
import { combinedDisposable, DisposableStore, IDisposable, MutableDisposable } from 'vs/base/common/lifecycle';
import { URI } from 'vs/base/common/uri';
import { IModeService } from 'vs/editor/common/services/modeService';
import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions';
@@ -197,15 +198,21 @@ export class MainThreadNotebookKernels implements MainThreadNotebookKernelsShape
}(data, this._modeService);
const registration = this._notebookKernelService.registerKernel(kernel);
let idleHandle = new MutableDisposable();
const listener = this._notebookKernelService.onDidChangeNotebookKernelBinding(e => {
if (e.oldKernel === kernel.id) {
this._proxy.$acceptSelection(handle, e.notebook, false);
} else if (e.newKernel === kernel.id) {
this._proxy.$acceptSelection(handle, e.notebook, true);
}
idleHandle.value = runWhenIdle(() => {
if (e.oldKernel === kernel.id) {
this._proxy.$acceptSelection(handle, e.notebook, false);
} else if (e.newKernel === kernel.id) {
this._proxy.$acceptSelection(handle, e.notebook, true);
}
}, 100);
});
this._kernels.set(handle, [kernel, combinedDisposable(listener, registration)]);
this._kernels.set(handle, [kernel, combinedDisposable(listener, registration, idleHandle)]);
}
$updateKernel(handle: number, data: Partial<INotebookKernelDto2>): void {