提交 056a1612 编写于 作者: A Alex Dima

Fixes Microsoft/monaco-editor#69: Introduce and adopt...

Fixes Microsoft/monaco-editor#69: Introduce and adopt `alwaysConsumeMouseWheel` ScrollableElement option
上级 731085a9
...@@ -87,6 +87,7 @@ export class ListView<T> implements IDisposable { ...@@ -87,6 +87,7 @@ export class ListView<T> implements IDisposable {
this.scrollableElement = new ScrollableElement(this.rowsContainer, { this.scrollableElement = new ScrollableElement(this.rowsContainer, {
canUseTranslate3d: false, canUseTranslate3d: false,
alwaysConsumeMouseWheel: true,
horizontal: ScrollbarVisibility.Hidden, horizontal: ScrollbarVisibility.Hidden,
vertical: ScrollbarVisibility.Auto, vertical: ScrollbarVisibility.Auto,
useShadows: getOrDefault(options, o => o.useShadows, DefaultOptions.useShadows), useShadows: getOrDefault(options, o => o.useShadows, DefaultOptions.useShadows),
......
...@@ -285,8 +285,10 @@ export class ScrollableElement extends Widget { ...@@ -285,8 +285,10 @@ export class ScrollableElement extends Widget {
} }
} }
e.preventDefault(); if (this._options.alwaysConsumeMouseWheel || this._shouldRender) {
e.stopPropagation(); e.preventDefault();
e.stopPropagation();
}
} }
private _onDidScroll(e:ScrollEvent): void { private _onDidScroll(e:ScrollEvent): void {
...@@ -416,6 +418,7 @@ function resolveOptions(opts: ScrollableElementCreationOptions): ScrollableEleme ...@@ -416,6 +418,7 @@ function resolveOptions(opts: ScrollableElementCreationOptions): ScrollableEleme
useShadows: (typeof opts.useShadows !== 'undefined' ? opts.useShadows : true), useShadows: (typeof opts.useShadows !== 'undefined' ? opts.useShadows : true),
handleMouseWheel: (typeof opts.handleMouseWheel !== 'undefined' ? opts.handleMouseWheel : true), handleMouseWheel: (typeof opts.handleMouseWheel !== 'undefined' ? opts.handleMouseWheel : true),
flipAxes: (typeof opts.flipAxes !== 'undefined' ? opts.flipAxes : false), flipAxes: (typeof opts.flipAxes !== 'undefined' ? opts.flipAxes : false),
alwaysConsumeMouseWheel: (typeof opts.alwaysConsumeMouseWheel !== 'undefined' ? opts.alwaysConsumeMouseWheel : false),
scrollYToX: (typeof opts.scrollYToX !== 'undefined' ? opts.scrollYToX : false), scrollYToX: (typeof opts.scrollYToX !== 'undefined' ? opts.scrollYToX : false),
mouseWheelScrollSensitivity: (typeof opts.mouseWheelScrollSensitivity !== 'undefined' ? opts.mouseWheelScrollSensitivity : 1), mouseWheelScrollSensitivity: (typeof opts.mouseWheelScrollSensitivity !== 'undefined' ? opts.mouseWheelScrollSensitivity : 1),
arrowSize: (typeof opts.arrowSize !== 'undefined' ? opts.arrowSize : 11), arrowSize: (typeof opts.arrowSize !== 'undefined' ? opts.arrowSize : 11),
......
...@@ -40,6 +40,11 @@ export interface ScrollableElementCreationOptions { ...@@ -40,6 +40,11 @@ export interface ScrollableElementCreationOptions {
* Defaults to false. * Defaults to false.
*/ */
scrollYToX?: boolean; scrollYToX?: boolean;
/**
* Always consume mouse wheel events, even when scrolling is no longer possible.
* Defaults to false.
*/
alwaysConsumeMouseWheel?: boolean;
/** /**
* A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events. * A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.
* Defaults to 1. * Defaults to 1.
...@@ -117,6 +122,7 @@ export interface ScrollableElementResolvedOptions { ...@@ -117,6 +122,7 @@ export interface ScrollableElementResolvedOptions {
handleMouseWheel: boolean; handleMouseWheel: boolean;
flipAxes: boolean; flipAxes: boolean;
scrollYToX: boolean; scrollYToX: boolean;
alwaysConsumeMouseWheel: boolean;
mouseWheelScrollSensitivity: number; mouseWheelScrollSensitivity: number;
arrowSize: number; arrowSize: number;
listenOnDomNode: HTMLElement; listenOnDomNode: HTMLElement;
......
...@@ -489,6 +489,7 @@ export class TreeView extends HeightMap { ...@@ -489,6 +489,7 @@ export class TreeView extends HeightMap {
this.wrapper.className = 'monaco-tree-wrapper'; this.wrapper.className = 'monaco-tree-wrapper';
this.scrollableElement = new ScrollableElement(this.wrapper, { this.scrollableElement = new ScrollableElement(this.wrapper, {
canUseTranslate3d: false, canUseTranslate3d: false,
alwaysConsumeMouseWheel: true,
horizontal: ScrollbarVisibility.Hidden, horizontal: ScrollbarVisibility.Hidden,
vertical: (typeof context.options.verticalScrollMode !== 'undefined' ? context.options.verticalScrollMode : ScrollbarVisibility.Auto), vertical: (typeof context.options.verticalScrollMode !== 'undefined' ? context.options.verticalScrollMode : ScrollbarVisibility.Auto),
useShadows: context.options.useShadows, useShadows: context.options.useShadows,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册