Redraw editors when vscode:osResume is received (#58167)

This commit is contained in:
Alex Dima 2019-01-07 10:44:20 +01:00
parent 7973e24ae0
commit fb4f36cca8
5 changed files with 28 additions and 4 deletions

View file

@ -732,7 +732,7 @@ export interface ICodeEditor extends editorCommon.IEditor {
/**
* Force an editor render now.
*/
render(): void;
render(forceRedraw?: boolean): void;
/**
* Get the hit test target at coordinates `clientX` and `clientY`.

View file

@ -1283,11 +1283,11 @@ export class CodeEditorWidget extends Disposable implements editorBrowser.ICodeE
return this._modelData.view.getOffsetForColumn(lineNumber, column);
}
public render(): void {
public render(forceRedraw: boolean = false): void {
if (!this._modelData || !this._modelData.hasRealView) {
return;
}
this._modelData.view.render(true, false);
this._modelData.view.render(true, forceRedraw);
}
public applyFontInfo(target: HTMLElement): void {

2
src/vs/monaco.d.ts vendored
View file

@ -4042,7 +4042,7 @@ declare namespace monaco.editor {
/**
* Force an editor render now.
*/
render(): void;
render(forceRedraw?: boolean): void;
/**
* Get the hit test target at coordinates `clientX` and `clientY`.
* The coordinates are relative to the top-left of the viewport.

View file

@ -8,6 +8,7 @@ import './electron-browser/accessibility';
import './electron-browser/inspectKeybindings';
import './electron-browser/largeFileOptimizations';
import './electron-browser/selectionClipboard';
import './electron-browser/sleepResumeRepaintMinimap';
import './electron-browser/textMate/inspectTMScopes';
import './electron-browser/toggleMinimap';
import './electron-browser/toggleMultiCursorModifier';

View file

@ -0,0 +1,23 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle';
import { Registry } from 'vs/platform/registry/common/platform';
import { Extensions as WorkbenchExtensions, IWorkbenchContribution, IWorkbenchContributionsRegistry } from 'vs/workbench/common/contributions';
import { ipcRenderer as ipc } from 'electron';
import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService';
class SleepResumeRepaintMinimap implements IWorkbenchContribution {
constructor(
@ICodeEditorService codeEditorService: ICodeEditorService
) {
ipc.on('vscode:osResume', () => {
codeEditorService.listCodeEditors().forEach(editor => editor.render(true));
});
}
}
Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench).registerWorkbenchContribution(SleepResumeRepaintMinimap, LifecyclePhase.Eventually);