提交 d6e80052 编写于 作者: M Martin Aeschlimann

editorScrollbar: move off editor.viewInfo.theme

上级 c754761c
......@@ -13,6 +13,7 @@ import { ViewContext } from 'vs/editor/common/view/viewContext';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { FastDomNode, createFastDomNode } from 'vs/base/browser/fastDomNode';
import { getThemeTypeSelector } from "vs/platform/theme/common/themeService";
export class EditorScrollbar extends ViewPart {
......@@ -33,7 +34,7 @@ export class EditorScrollbar extends ViewPart {
let scrollbarOptions: ScrollableElementCreationOptions = {
canUseTranslate3d: editor.canUseTranslate3d,
listenOnDomNode: viewDomNode.domNode,
className: 'editor-scrollable' + ' ' + editor.viewInfo.theme,
className: 'editor-scrollable' + ' ' + getThemeTypeSelector(context.theme.type),
useShadows: false,
lazyRender: true,
......@@ -120,10 +121,8 @@ export class EditorScrollbar extends ViewPart {
// --- begin event handlers
public onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean {
const editor = this._context.configuration.editor;
this.scrollbar.updateClassName('editor-scrollable' + ' ' + editor.viewInfo.theme);
if (e.viewInfo || e.canUseTranslate3d) {
const editor = this._context.configuration.editor;
let newOpts: ScrollableElementChangeOptions = {
canUseTranslate3d: editor.canUseTranslate3d,
handleMouseWheel: editor.viewInfo.scrollbar.handleMouseWheel,
......@@ -139,6 +138,10 @@ export class EditorScrollbar extends ViewPart {
public onScrollChanged(e: viewEvents.ViewScrollChangedEvent): boolean {
return true;
}
public onThemeChanged(e: viewEvents.ViewThemeChangedEvent): boolean {
this.scrollbar.updateClassName('editor-scrollable' + ' ' + getThemeTypeSelector(this._context.theme.type));
return true;
}
// --- end event handlers
......
......@@ -19,6 +19,14 @@ export const LIGHT = 'light';
export const HIGH_CONTRAST = 'hc';
export type ThemeType = 'light' | 'dark' | 'hc';
export function getThemeTypeSelector(type: ThemeType): string {
switch (type) {
case DARK: return 'vs-dark';
case HIGH_CONTRAST: return 'hc-black';
default: return 'vs';
}
}
export interface ITheme {
readonly type: ThemeType;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册