From 9f482b34502fded5b5c0df3af951b909192fb92a Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 14 Jun 2017 07:47:43 +0200 Subject: [PATCH] Hint GPU layers for editor sliders --- src/vs/base/browser/dom.ts | 5 +++++ src/vs/base/browser/ui/scrollbar/abstractScrollbar.ts | 1 + src/vs/editor/browser/viewParts/minimap/minimap.ts | 1 + 3 files changed, 7 insertions(+) diff --git a/src/vs/base/browser/dom.ts b/src/vs/base/browser/dom.ts index 228550b57af..2915bcb44bb 100644 --- a/src/vs/base/browser/dom.ts +++ b/src/vs/base/browser/dom.ts @@ -1041,3 +1041,8 @@ export function domContentLoaded(): TPromise { } }); } + +export function hintGPULayer(target: HTMLElement): void { + // This is to hint browsers that this dom node is suited to live in its own layer (e.g. sliders, etc.) + (target.style).willChange = 'transform'; +} diff --git a/src/vs/base/browser/ui/scrollbar/abstractScrollbar.ts b/src/vs/base/browser/ui/scrollbar/abstractScrollbar.ts index c7194cbc5c5..7a8743cb62a 100644 --- a/src/vs/base/browser/ui/scrollbar/abstractScrollbar.ts +++ b/src/vs/base/browser/ui/scrollbar/abstractScrollbar.ts @@ -170,6 +170,7 @@ export abstract class AbstractScrollbar extends Widget { this.domNode.setTransform('translate3d(0px, 0px, 0px)'); } else { this.domNode.setTransform(''); + DomUtils.hintGPULayer(this.domNode.domNode); } this._renderDomNode(this._scrollbarState.getRectangleLargeSize(), this._scrollbarState.getRectangleSmallSize()); diff --git a/src/vs/editor/browser/viewParts/minimap/minimap.ts b/src/vs/editor/browser/viewParts/minimap/minimap.ts index 1358242f406..70cb44e1523 100644 --- a/src/vs/editor/browser/viewParts/minimap/minimap.ts +++ b/src/vs/editor/browser/viewParts/minimap/minimap.ts @@ -413,6 +413,7 @@ export class Minimap extends ViewPart { this._slider = createFastDomNode(document.createElement('div')); this._slider.setPosition('absolute'); this._slider.setClassName('minimap-slider'); + dom.hintGPULayer(this._slider.domNode); this._domNode.appendChild(this._slider); this._tokensColorTracker = MinimapTokensColorTracker.getInstance(); -- GitLab