提交 4904bf0d 编写于 作者: J Joao Moreno

🐛 mouse doesn't work in intellisense any more

fixes #23498
上级 dc6ae593
......@@ -282,6 +282,10 @@ function isSelectionChangeEvent(event: IListMouseEvent<any>): boolean {
return isSelectionSingleChangeEvent(event) || isSelectionRangeChangeEvent(event);
}
export interface IMouseControllerOptions {
selectOnMouseDown?: boolean;
}
class MouseController<T> implements IDisposable {
private disposables: IDisposable[];
......@@ -309,7 +313,8 @@ class MouseController<T> implements IDisposable {
constructor(
private list: List<T>,
private view: ListView<T>
private view: ListView<T>,
private options: IMouseControllerOptions = {}
) {
this.disposables = [];
this.disposables.push(view.addListener('mousedown', e => this.onMouseDown(e)));
......@@ -335,6 +340,11 @@ class MouseController<T> implements IDisposable {
if (isSelectionChangeEvent(e)) {
return this.changeSelection(e, reference);
}
if (this.options.selectOnMouseDown) {
this.list.setSelection([focus]);
this.list.open([focus]);
}
}
private onPointer(e: IListMouseEvent<T>): void {
......@@ -384,7 +394,7 @@ class MouseController<T> implements IDisposable {
}
}
export interface IListOptions<T> extends IListViewOptions {
export interface IListOptions<T> extends IListViewOptions, IMouseControllerOptions {
identityProvider?: IIdentityProvider<T>;
ariaLabel?: string;
mouseSupport?: boolean;
......@@ -574,7 +584,7 @@ export class List<T> implements ISpliceable<T>, IDisposable {
}
if (typeof options.mouseSupport !== 'boolean' || options.mouseSupport) {
const controller = new MouseController(this, this.view);
const controller = new MouseController(this, this.view, options);
this.disposables.push(controller);
this._onContextMenu = controller.onContextMenu;
}
......
......@@ -359,7 +359,10 @@ export class SuggestWidget implements IContentWidget, IDelegate<ICompletionItem>
let renderer: IRenderer<ICompletionItem, any> = instantiationService.createInstance(Renderer, this, this.editor);
this.list = new List(this.listElement, this, [renderer], { useShadows: false });
this.list = new List(this.listElement, this, [renderer], {
useShadows: false,
selectOnMouseDown: true
});
this.toDispose = [
editor.onDidBlurEditorText(() => this.onEditorBlur()),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册