提交 faeb58eb 编写于 作者: J Joao Moreno

do not call git status when window is not focused

related to #901
上级 1336b3d3
...@@ -6,113 +6,115 @@ ...@@ -6,113 +6,115 @@
import _Event, { Emitter } from 'vs/base/common/event'; import _Event, { Emitter } from 'vs/base/common/event';
export type EventHandler = HTMLElement | HTMLDocument | Window;
export interface IDomEvent { export interface IDomEvent {
(element: HTMLElement, type: "MSContentZoom", useCapture?: boolean): _Event<UIEvent>; (element: EventHandler, type: "MSContentZoom", useCapture?: boolean): _Event<UIEvent>;
(element: HTMLElement, type: "MSGestureChange", useCapture?: boolean): _Event<MSGestureEvent>; (element: EventHandler, type: "MSGestureChange", useCapture?: boolean): _Event<MSGestureEvent>;
(element: HTMLElement, type: "MSGestureDoubleTap", useCapture?: boolean): _Event<MSGestureEvent>; (element: EventHandler, type: "MSGestureDoubleTap", useCapture?: boolean): _Event<MSGestureEvent>;
(element: HTMLElement, type: "MSGestureEnd", useCapture?: boolean): _Event<MSGestureEvent>; (element: EventHandler, type: "MSGestureEnd", useCapture?: boolean): _Event<MSGestureEvent>;
(element: HTMLElement, type: "MSGestureHold", useCapture?: boolean): _Event<MSGestureEvent>; (element: EventHandler, type: "MSGestureHold", useCapture?: boolean): _Event<MSGestureEvent>;
(element: HTMLElement, type: "MSGestureStart", useCapture?: boolean): _Event<MSGestureEvent>; (element: EventHandler, type: "MSGestureStart", useCapture?: boolean): _Event<MSGestureEvent>;
(element: HTMLElement, type: "MSGestureTap", useCapture?: boolean): _Event<MSGestureEvent>; (element: EventHandler, type: "MSGestureTap", useCapture?: boolean): _Event<MSGestureEvent>;
(element: HTMLElement, type: "MSGotPointerCapture", useCapture?: boolean): _Event<MSPointerEvent>; (element: EventHandler, type: "MSGotPointerCapture", useCapture?: boolean): _Event<MSPointerEvent>;
(element: HTMLElement, type: "MSInertiaStart", useCapture?: boolean): _Event<MSGestureEvent>; (element: EventHandler, type: "MSInertiaStart", useCapture?: boolean): _Event<MSGestureEvent>;
(element: HTMLElement, type: "MSLostPointerCapture", useCapture?: boolean): _Event<MSPointerEvent>; (element: EventHandler, type: "MSLostPointerCapture", useCapture?: boolean): _Event<MSPointerEvent>;
(element: HTMLElement, type: "MSManipulationStateChanged", useCapture?: boolean): _Event<MSManipulationEvent>; (element: EventHandler, type: "MSManipulationStateChanged", useCapture?: boolean): _Event<MSManipulationEvent>;
(element: HTMLElement, type: "MSPointerCancel", useCapture?: boolean): _Event<MSPointerEvent>; (element: EventHandler, type: "MSPointerCancel", useCapture?: boolean): _Event<MSPointerEvent>;
(element: HTMLElement, type: "MSPointerDown", useCapture?: boolean): _Event<MSPointerEvent>; (element: EventHandler, type: "MSPointerDown", useCapture?: boolean): _Event<MSPointerEvent>;
(element: HTMLElement, type: "MSPointerEnter", useCapture?: boolean): _Event<MSPointerEvent>; (element: EventHandler, type: "MSPointerEnter", useCapture?: boolean): _Event<MSPointerEvent>;
(element: HTMLElement, type: "MSPointerLeave", useCapture?: boolean): _Event<MSPointerEvent>; (element: EventHandler, type: "MSPointerLeave", useCapture?: boolean): _Event<MSPointerEvent>;
(element: HTMLElement, type: "MSPointerMove", useCapture?: boolean): _Event<MSPointerEvent>; (element: EventHandler, type: "MSPointerMove", useCapture?: boolean): _Event<MSPointerEvent>;
(element: HTMLElement, type: "MSPointerOut", useCapture?: boolean): _Event<MSPointerEvent>; (element: EventHandler, type: "MSPointerOut", useCapture?: boolean): _Event<MSPointerEvent>;
(element: HTMLElement, type: "MSPointerOver", useCapture?: boolean): _Event<MSPointerEvent>; (element: EventHandler, type: "MSPointerOver", useCapture?: boolean): _Event<MSPointerEvent>;
(element: HTMLElement, type: "MSPointerUp", useCapture?: boolean): _Event<MSPointerEvent>; (element: EventHandler, type: "MSPointerUp", useCapture?: boolean): _Event<MSPointerEvent>;
(element: HTMLElement, type: "abort", useCapture?: boolean): _Event<UIEvent>; (element: EventHandler, type: "abort", useCapture?: boolean): _Event<UIEvent>;
(element: HTMLElement, type: "activate", useCapture?: boolean): _Event<UIEvent>; (element: EventHandler, type: "activate", useCapture?: boolean): _Event<UIEvent>;
(element: HTMLElement, type: "ariarequest", useCapture?: boolean): _Event<AriaRequestEvent>; (element: EventHandler, type: "ariarequest", useCapture?: boolean): _Event<AriaRequestEvent>;
(element: HTMLElement, type: "beforeactivate", useCapture?: boolean): _Event<UIEvent>; (element: EventHandler, type: "beforeactivate", useCapture?: boolean): _Event<UIEvent>;
(element: HTMLElement, type: "beforecopy", useCapture?: boolean): _Event<DragEvent>; (element: EventHandler, type: "beforecopy", useCapture?: boolean): _Event<DragEvent>;
(element: HTMLElement, type: "beforecut", useCapture?: boolean): _Event<DragEvent>; (element: EventHandler, type: "beforecut", useCapture?: boolean): _Event<DragEvent>;
(element: HTMLElement, type: "beforedeactivate", useCapture?: boolean): _Event<UIEvent>; (element: EventHandler, type: "beforedeactivate", useCapture?: boolean): _Event<UIEvent>;
(element: HTMLElement, type: "beforepaste", useCapture?: boolean): _Event<DragEvent>; (element: EventHandler, type: "beforepaste", useCapture?: boolean): _Event<DragEvent>;
(element: HTMLElement, type: "blur", useCapture?: boolean): _Event<FocusEvent>; (element: EventHandler, type: "blur", useCapture?: boolean): _Event<FocusEvent>;
(element: HTMLElement, type: "canplay", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "canplay", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "canplaythrough", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "canplaythrough", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "change", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "change", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "click", useCapture?: boolean): _Event<MouseEvent>; (element: EventHandler, type: "click", useCapture?: boolean): _Event<MouseEvent>;
(element: HTMLElement, type: "command", useCapture?: boolean): _Event<CommandEvent>; (element: EventHandler, type: "command", useCapture?: boolean): _Event<CommandEvent>;
(element: HTMLElement, type: "contextmenu", useCapture?: boolean): _Event<PointerEvent>; (element: EventHandler, type: "contextmenu", useCapture?: boolean): _Event<PointerEvent>;
(element: HTMLElement, type: "copy", useCapture?: boolean): _Event<DragEvent>; (element: EventHandler, type: "copy", useCapture?: boolean): _Event<DragEvent>;
(element: HTMLElement, type: "cuechange", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "cuechange", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "cut", useCapture?: boolean): _Event<DragEvent>; (element: EventHandler, type: "cut", useCapture?: boolean): _Event<DragEvent>;
(element: HTMLElement, type: "dblclick", useCapture?: boolean): _Event<MouseEvent>; (element: EventHandler, type: "dblclick", useCapture?: boolean): _Event<MouseEvent>;
(element: HTMLElement, type: "deactivate", useCapture?: boolean): _Event<UIEvent>; (element: EventHandler, type: "deactivate", useCapture?: boolean): _Event<UIEvent>;
(element: HTMLElement, type: "drag", useCapture?: boolean): _Event<DragEvent>; (element: EventHandler, type: "drag", useCapture?: boolean): _Event<DragEvent>;
(element: HTMLElement, type: "dragend", useCapture?: boolean): _Event<DragEvent>; (element: EventHandler, type: "dragend", useCapture?: boolean): _Event<DragEvent>;
(element: HTMLElement, type: "dragenter", useCapture?: boolean): _Event<DragEvent>; (element: EventHandler, type: "dragenter", useCapture?: boolean): _Event<DragEvent>;
(element: HTMLElement, type: "dragleave", useCapture?: boolean): _Event<DragEvent>; (element: EventHandler, type: "dragleave", useCapture?: boolean): _Event<DragEvent>;
(element: HTMLElement, type: "dragover", useCapture?: boolean): _Event<DragEvent>; (element: EventHandler, type: "dragover", useCapture?: boolean): _Event<DragEvent>;
(element: HTMLElement, type: "dragstart", useCapture?: boolean): _Event<DragEvent>; (element: EventHandler, type: "dragstart", useCapture?: boolean): _Event<DragEvent>;
(element: HTMLElement, type: "drop", useCapture?: boolean): _Event<DragEvent>; (element: EventHandler, type: "drop", useCapture?: boolean): _Event<DragEvent>;
(element: HTMLElement, type: "durationchange", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "durationchange", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "emptied", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "emptied", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "ended", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "ended", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "error", useCapture?: boolean): _Event<ErrorEvent>; (element: EventHandler, type: "error", useCapture?: boolean): _Event<ErrorEvent>;
(element: HTMLElement, type: "focus", useCapture?: boolean): _Event<FocusEvent>; (element: EventHandler, type: "focus", useCapture?: boolean): _Event<FocusEvent>;
(element: HTMLElement, type: "gotpointercapture", useCapture?: boolean): _Event<PointerEvent>; (element: EventHandler, type: "gotpointercapture", useCapture?: boolean): _Event<PointerEvent>;
(element: HTMLElement, type: "input", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "input", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "keydown", useCapture?: boolean): _Event<KeyboardEvent>; (element: EventHandler, type: "keydown", useCapture?: boolean): _Event<KeyboardEvent>;
(element: HTMLElement, type: "keypress", useCapture?: boolean): _Event<KeyboardEvent>; (element: EventHandler, type: "keypress", useCapture?: boolean): _Event<KeyboardEvent>;
(element: HTMLElement, type: "keyup", useCapture?: boolean): _Event<KeyboardEvent>; (element: EventHandler, type: "keyup", useCapture?: boolean): _Event<KeyboardEvent>;
(element: HTMLElement, type: "load", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "load", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "loadeddata", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "loadeddata", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "loadedmetadata", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "loadedmetadata", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "loadstart", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "loadstart", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "lostpointercapture", useCapture?: boolean): _Event<PointerEvent>; (element: EventHandler, type: "lostpointercapture", useCapture?: boolean): _Event<PointerEvent>;
(element: HTMLElement, type: "mousedown", useCapture?: boolean): _Event<MouseEvent>; (element: EventHandler, type: "mousedown", useCapture?: boolean): _Event<MouseEvent>;
(element: HTMLElement, type: "mouseenter", useCapture?: boolean): _Event<MouseEvent>; (element: EventHandler, type: "mouseenter", useCapture?: boolean): _Event<MouseEvent>;
(element: HTMLElement, type: "mouseleave", useCapture?: boolean): _Event<MouseEvent>; (element: EventHandler, type: "mouseleave", useCapture?: boolean): _Event<MouseEvent>;
(element: HTMLElement, type: "mousemove", useCapture?: boolean): _Event<MouseEvent>; (element: EventHandler, type: "mousemove", useCapture?: boolean): _Event<MouseEvent>;
(element: HTMLElement, type: "mouseout", useCapture?: boolean): _Event<MouseEvent>; (element: EventHandler, type: "mouseout", useCapture?: boolean): _Event<MouseEvent>;
(element: HTMLElement, type: "mouseover", useCapture?: boolean): _Event<MouseEvent>; (element: EventHandler, type: "mouseover", useCapture?: boolean): _Event<MouseEvent>;
(element: HTMLElement, type: "mouseup", useCapture?: boolean): _Event<MouseEvent>; (element: EventHandler, type: "mouseup", useCapture?: boolean): _Event<MouseEvent>;
(element: HTMLElement, type: "mousewheel", useCapture?: boolean): _Event<MouseWheelEvent>; (element: EventHandler, type: "mousewheel", useCapture?: boolean): _Event<MouseWheelEvent>;
(element: HTMLElement, type: "paste", useCapture?: boolean): _Event<DragEvent>; (element: EventHandler, type: "paste", useCapture?: boolean): _Event<DragEvent>;
(element: HTMLElement, type: "pause", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "pause", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "play", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "play", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "playing", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "playing", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "pointercancel", useCapture?: boolean): _Event<PointerEvent>; (element: EventHandler, type: "pointercancel", useCapture?: boolean): _Event<PointerEvent>;
(element: HTMLElement, type: "pointerdown", useCapture?: boolean): _Event<PointerEvent>; (element: EventHandler, type: "pointerdown", useCapture?: boolean): _Event<PointerEvent>;
(element: HTMLElement, type: "pointerenter", useCapture?: boolean): _Event<PointerEvent>; (element: EventHandler, type: "pointerenter", useCapture?: boolean): _Event<PointerEvent>;
(element: HTMLElement, type: "pointerleave", useCapture?: boolean): _Event<PointerEvent>; (element: EventHandler, type: "pointerleave", useCapture?: boolean): _Event<PointerEvent>;
(element: HTMLElement, type: "pointermove", useCapture?: boolean): _Event<PointerEvent>; (element: EventHandler, type: "pointermove", useCapture?: boolean): _Event<PointerEvent>;
(element: HTMLElement, type: "pointerout", useCapture?: boolean): _Event<PointerEvent>; (element: EventHandler, type: "pointerout", useCapture?: boolean): _Event<PointerEvent>;
(element: HTMLElement, type: "pointerover", useCapture?: boolean): _Event<PointerEvent>; (element: EventHandler, type: "pointerover", useCapture?: boolean): _Event<PointerEvent>;
(element: HTMLElement, type: "pointerup", useCapture?: boolean): _Event<PointerEvent>; (element: EventHandler, type: "pointerup", useCapture?: boolean): _Event<PointerEvent>;
(element: HTMLElement, type: "progress", useCapture?: boolean): _Event<ProgressEvent>; (element: EventHandler, type: "progress", useCapture?: boolean): _Event<ProgressEvent>;
(element: HTMLElement, type: "ratechange", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "ratechange", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "reset", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "reset", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "scroll", useCapture?: boolean): _Event<UIEvent>; (element: EventHandler, type: "scroll", useCapture?: boolean): _Event<UIEvent>;
(element: HTMLElement, type: "seeked", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "seeked", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "seeking", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "seeking", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "select", useCapture?: boolean): _Event<UIEvent>; (element: EventHandler, type: "select", useCapture?: boolean): _Event<UIEvent>;
(element: HTMLElement, type: "selectstart", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "selectstart", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "stalled", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "stalled", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "submit", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "submit", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "suspend", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "suspend", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "timeupdate", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "timeupdate", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "touchcancel", useCapture?: boolean): _Event<TouchEvent>; (element: EventHandler, type: "touchcancel", useCapture?: boolean): _Event<TouchEvent>;
(element: HTMLElement, type: "touchend", useCapture?: boolean): _Event<TouchEvent>; (element: EventHandler, type: "touchend", useCapture?: boolean): _Event<TouchEvent>;
(element: HTMLElement, type: "touchmove", useCapture?: boolean): _Event<TouchEvent>; (element: EventHandler, type: "touchmove", useCapture?: boolean): _Event<TouchEvent>;
(element: HTMLElement, type: "touchstart", useCapture?: boolean): _Event<TouchEvent>; (element: EventHandler, type: "touchstart", useCapture?: boolean): _Event<TouchEvent>;
(element: HTMLElement, type: "volumechange", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "volumechange", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "waiting", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "waiting", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "webkitfullscreenchange", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "webkitfullscreenchange", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "webkitfullscreenerror", useCapture?: boolean): _Event<Event>; (element: EventHandler, type: "webkitfullscreenerror", useCapture?: boolean): _Event<Event>;
(element: HTMLElement, type: "wheel", useCapture?: boolean): _Event<WheelEvent>; (element: EventHandler, type: "wheel", useCapture?: boolean): _Event<WheelEvent>;
(element: HTMLElement, type: string, useCapture?: boolean): _Event<any>; (element: EventHandler, type: string, useCapture?: boolean): _Event<any>;
} }
export const domEvent: IDomEvent = (element: HTMLElement, type: string, useCapture?) => { export const domEvent: IDomEvent = (element: EventHandler, type: string, useCapture?) => {
const fn = e => emitter.fire(e); const fn = e => emitter.fire(e);
const emitter = new Emitter<any>({ const emitter = new Emitter<any>({
onFirstListenerAdd: () => { onFirstListenerAdd: () => {
......
...@@ -36,6 +36,7 @@ import * as semver from 'semver'; ...@@ -36,6 +36,7 @@ import * as semver from 'semver';
import { shell } from 'electron'; import { shell } from 'electron';
import {IStorageService, StorageScope} from 'vs/platform/storage/common/storage'; import {IStorageService, StorageScope} from 'vs/platform/storage/common/storage';
import Event from 'vs/base/common/event'; import Event from 'vs/base/common/event';
import { domEvent } from 'vs/base/browser/event';
import {IEditorGroupService} from 'vs/workbench/services/group/common/groupService'; import {IEditorGroupService} from 'vs/workbench/services/group/common/groupService';
function toReadablePath(path: string): string { function toReadablePath(path: string): string {
...@@ -402,6 +403,8 @@ export class GitService extends ee.EventEmitter ...@@ -402,6 +403,8 @@ export class GitService extends ee.EventEmitter
private statusDelayer: async.ThrottledDelayer<void>; private statusDelayer: async.ThrottledDelayer<void>;
private reactiveStatusDelayer: async.PeriodThrottledDelayer<void>; private reactiveStatusDelayer: async.PeriodThrottledDelayer<void>;
private autoFetcher: AutoFetcher; private autoFetcher: AutoFetcher;
private isStatusPending = false;
private isFocused = false;
private _allowHugeRepositories: boolean; private _allowHugeRepositories: boolean;
get allowHugeRepositories(): boolean { return this._allowHugeRepositories; } get allowHugeRepositories(): boolean { return this._allowHugeRepositories; }
...@@ -453,7 +456,7 @@ export class GitService extends ee.EventEmitter ...@@ -453,7 +456,7 @@ export class GitService extends ee.EventEmitter
this.inputCache = this.instantiationService.createInstance(EditorInputCache, this); this.inputCache = this.instantiationService.createInstance(EditorInputCache, this);
this.triggerStatus(); // trigger initial status this.triggerAutoStatus(true); // trigger initial status
if (!storageService.getBoolean(IgnoreOldGitStorageKey, StorageScope.GLOBAL, false)) { if (!storageService.getBoolean(IgnoreOldGitStorageKey, StorageScope.GLOBAL, false)) {
this.raw.serviceState().done(state => { this.raw.serviceState().done(state => {
...@@ -500,10 +503,22 @@ export class GitService extends ee.EventEmitter ...@@ -500,10 +503,22 @@ export class GitService extends ee.EventEmitter
this._allowHugeRepositories = config.allowLargeRepositories; this._allowHugeRepositories = config.allowLargeRepositories;
if (this._allowHugeRepositories) { if (this._allowHugeRepositories) {
this.triggerStatus(); this.triggerAutoStatus();
} }
})); }));
this.lifecycleService.onShutdown(this.dispose, this); this.lifecycleService.onShutdown(this.dispose, this);
const focusEvent = domEvent(window, 'focus');
this.toDispose.push(focusEvent(() => {
this.isFocused = true;
if (this.isStatusPending) {
this.triggerAutoStatus();
}
}));
const blurEvent = domEvent(window, 'blur');
this.toDispose.push(blurEvent(() => this.isFocused = false));
} }
private onTextFileChange(e:filesCommon.TextFileChangeEvent): void { private onTextFileChange(e:filesCommon.TextFileChangeEvent): void {
...@@ -513,7 +528,7 @@ export class GitService extends ee.EventEmitter ...@@ -513,7 +528,7 @@ export class GitService extends ee.EventEmitter
return; return;
} }
this.triggerStatus(); this.triggerAutoStatus();
} }
private onFileChanges(e: FileChangesEvent): void { private onFileChanges(e: FileChangesEvent): void {
...@@ -547,12 +562,12 @@ export class GitService extends ee.EventEmitter ...@@ -547,12 +562,12 @@ export class GitService extends ee.EventEmitter
return; return;
} }
this.triggerStatus(); this.triggerAutoStatus();
} }
private onGitServiceOperationEnd(e: { operation: git.IGitOperation; }): void { private onGitServiceOperationEnd(e: { operation: git.IGitOperation; }): void {
if (e.operation.id === git.ServiceOperations.COMMAND) { if (e.operation.id === git.ServiceOperations.COMMAND) {
this.triggerStatus(); this.triggerAutoStatus();
} }
} }
...@@ -589,7 +604,15 @@ export class GitService extends ee.EventEmitter ...@@ -589,7 +604,15 @@ export class GitService extends ee.EventEmitter
}); });
} }
private triggerStatus(): void { private triggerAutoStatus(force = false): void {
this.isStatusPending = true;
if (!this.isFocused && !force) {
return;
}
this.isStatusPending = false;
this.reactiveStatusDelayer.trigger(() => this.status()).done(null, e => { this.reactiveStatusDelayer.trigger(() => this.status()).done(null, e => {
if (errors.isPromiseCanceledError(e)) { if (errors.isPromiseCanceledError(e)) {
return; return;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册