diff --git a/src/vs/base/browser/ui/list/listView.ts b/src/vs/base/browser/ui/list/listView.ts index efaf86b1a4f..cf0b8fc2b91 100644 --- a/src/vs/base/browser/ui/list/listView.ts +++ b/src/vs/base/browser/ui/list/listView.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { toObject, assign } from 'vs/base/common/objects'; +import { toObject, assign, getOrDefault } from 'vs/base/common/objects'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { Gesture } from 'vs/base/browser/touch'; import * as DOM from 'vs/base/browser/dom'; @@ -38,6 +38,14 @@ const MouseEventTypes = [ 'contextmenu' ]; +export interface IListViewOptions { + useShadows?: boolean; +} + +const DefaultOptions: IListViewOptions = { + useShadows: true +}; + export class ListView implements IDisposable { private items: IItem[]; @@ -56,7 +64,8 @@ export class ListView implements IDisposable { constructor( container: HTMLElement, private delegate: IDelegate, - renderers: IRenderer[] + renderers: IRenderer[], + options: IListViewOptions = DefaultOptions ) { this.items = []; this.itemId = 0; @@ -79,7 +88,7 @@ export class ListView implements IDisposable { canUseTranslate3d: false, horizontal: ScrollbarVisibility.Hidden, vertical: ScrollbarVisibility.Auto, - useShadows: false, + useShadows: getOrDefault(options, o => o.useShadows, DefaultOptions.useShadows), saveLastScrollTimeOnClassName: 'monaco-list-row' }); diff --git a/src/vs/base/browser/ui/list/listWidget.ts b/src/vs/base/browser/ui/list/listWidget.ts index 00815a1a5c0..4dfb48f44b2 100644 --- a/src/vs/base/browser/ui/list/listWidget.ts +++ b/src/vs/base/browser/ui/list/listWidget.ts @@ -9,7 +9,7 @@ import { isNumber } from 'vs/base/common/types'; import * as DOM from 'vs/base/browser/dom'; import Event, { Emitter, mapEvent, EventBufferer } from 'vs/base/common/event'; import { IDelegate, IRenderer, IListMouseEvent, IFocusChangeEvent, ISelectionChangeEvent } from './list'; -import { ListView } from './listView'; +import { ListView, IListViewOptions } from './listView'; interface ITraitTemplateData { container: HTMLElement; @@ -146,6 +146,11 @@ class Controller implements IDisposable { } } +export interface IListOptions extends IListViewOptions { +} + +const DefaultOptions: IListOptions = {}; + export class List implements IDisposable { private static InstanceCount = 0; @@ -168,7 +173,8 @@ export class List implements IDisposable { constructor( container: HTMLElement, delegate: IDelegate, - renderers: IRenderer[] + renderers: IRenderer[], + options: IListOptions = DefaultOptions ) { this.focus = new FocusTrait(i => this.getElementId(i)); this.selection = new Trait('selected'); @@ -180,7 +186,7 @@ export class List implements IDisposable { return r; }); - this.view = new ListView(container, delegate, renderers); + this.view = new ListView(container, delegate, renderers, options); this.view.domNode.setAttribute('role', 'listbox'); this.controller = new Controller(this, this.view); } diff --git a/src/vs/editor/contrib/suggest/browser/suggestWidget.ts b/src/vs/editor/contrib/suggest/browser/suggestWidget.ts index 8956509b1d3..a4ec74e26b9 100644 --- a/src/vs/editor/contrib/suggest/browser/suggestWidget.ts +++ b/src/vs/editor/contrib/suggest/browser/suggestWidget.ts @@ -364,7 +364,9 @@ export class SuggestWidget implements IContentWidget, IDisposable { let renderer: IRenderer = instantiationService.createInstance(Renderer, this, this.editor); this.delegate = new Delegate(() => this.list); - this.list = new List(this.listElement, this.delegate, [renderer]); + this.list = new List(this.listElement, this.delegate, [renderer], { + useShadows: false + }); this.toDispose = [ editor.onDidBlurEditorText(() => this.onEditorBlur()),