src/vs/workbench/contrib/notebook/browser/contrib/execute/executionEditorProgress.ts/ExecutionEditorProgressController/_update
class ExecutionEditorProgressController:	private _update() {
		if (!this._notebookEditor.hasModel()) {
			return;
		}

		const executing = this._notebookExecutionStateService.getCellExecutionsForNotebook(this._notebookEditor.textModel?.uri)
			.filter(exe => exe.state === NotebookCellExecutionState.Executing);
		const executionIsVisible = (exe: INotebookCellExecution) => {
			for (const range of this._notebookEditor.visibleRanges) {
				for (const cell of this._notebookEditor.getCellsInRange(range)) {
					if (cell.handle === exe.cellHandle) {
						const top = this._notebookEditor.getAbsoluteTopOfElement(cell);
						if (this._notebookEditor.scrollTop < top + 30) {
							return true;
						}
					}
				}
			}

			return false;
		};
		if (!executing.length || executing.some(executionIsVisible) || executing.some(e => e.isPaused)) {
			this._notebookEditor.hideProgress();
		} else {
			this._notebookEditor.showProgress();
		}
	}