Initial VS Code 1.19 source merge (#571)

* Initial 1.19 xcopy

* Fix yarn build

* Fix numerous build breaks

* Next batch of build break fixes

* More build break fixes

* Runtime breaks

* Additional post merge fixes

* Fix windows setup file

* Fix test failures.

* Update license header blocks to refer to source eula
This commit is contained in:
Karl Burtram
2018-01-28 23:37:17 -08:00
committed by GitHub
parent 9a1ac20710
commit 251ae01c3e
8009 changed files with 93378 additions and 35634 deletions

View File

@@ -1,78 +0,0 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { TimeoutTimer } from 'vs/base/common/async';
import Event, { Emitter } from 'vs/base/common/event';
import { Disposable } from 'vs/base/common/lifecycle';
import * as dom from 'vs/base/browser/dom';
export enum UserStatus {
Idle,
Active
}
export class IdleMonitor extends Disposable {
private _lastActiveTime: number;
private _idleCheckTimeout: TimeoutTimer;
private _status: UserStatus;
private _idleTime: number;
private _onStatusChange: Emitter<UserStatus>;
get onStatusChange(): Event<UserStatus> { return this._onStatusChange.event; }
constructor(idleTime: number) {
super();
this._status = null;
this._idleCheckTimeout = this._register(new TimeoutTimer());
this._lastActiveTime = -1;
this._idleTime = idleTime;
this._onStatusChange = new Emitter<UserStatus>();
this._register(dom.addDisposableListener(document, 'mousemove', () => this._onUserActive()));
this._register(dom.addDisposableListener(document, 'keydown', () => this._onUserActive()));
this._onUserActive();
}
get status(): UserStatus {
return this._status;
}
private _onUserActive(): void {
this._lastActiveTime = (new Date()).getTime();
if (this._status !== UserStatus.Active) {
this._status = UserStatus.Active;
this._scheduleIdleCheck();
this._onStatusChange.fire(this._status);
}
}
private _onUserIdle(): void {
if (this._status !== UserStatus.Idle) {
this._status = UserStatus.Idle;
this._onStatusChange.fire(this._status);
}
}
private _scheduleIdleCheck(): void {
const minimumTimeWhenUserCanBecomeIdle = this._lastActiveTime + this._idleTime;
const timeout = minimumTimeWhenUserCanBecomeIdle - (new Date()).getTime();
this._idleCheckTimeout.setIfNotSet(() => this._checkIfUserIsIdle(), timeout);
}
private _checkIfUserIsIdle(): void {
const actualIdleTime = (new Date()).getTime() - this._lastActiveTime;
if (actualIdleTime >= this._idleTime) {
this._onUserIdle();
} else {
this._scheduleIdleCheck();
}
}
}