implement touch interaction in list

fixes #9338
This commit is contained in:
João Moreno
2016-07-22 10:48:14 +02:00
parent f5e9cb6d3a
commit 9b89383033
2 changed files with 59 additions and 22 deletions

View File

@@ -7,6 +7,7 @@ import 'vs/css!./list';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { isNumber } from 'vs/base/common/types';
import * as DOM from 'vs/base/browser/dom';
import { EventType as TouchEventType } from 'vs/base/browser/touch';
import { KeyCode } from 'vs/base/common/keyCodes';
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
import Event, { Emitter, mapEvent, EventBufferer, filterEvent } from 'vs/base/common/event';
@@ -130,7 +131,8 @@ class Controller<T> implements IDisposable {
) {
this.disposables = [];
this.disposables.push(view.addListener('mousedown', e => this.onMouseDown(e)));
this.disposables.push(view.addListener('click', e => this.onClick(e)));
this.disposables.push(view.addListener('click', e => this.onPointer(e)));
this.disposables.push(view.addListener(TouchEventType.Tap, e => this.onPointer(e)));
const onRawKeyDown = domEvent(view.domNode, 'keydown');
const onKeyDown = mapEvent(onRawKeyDown, e => new StandardKeyboardEvent(e));
@@ -146,7 +148,7 @@ class Controller<T> implements IDisposable {
e.stopPropagation();
}
private onClick(e: IListMouseEvent<T>) {
private onPointer(e: IListMouseEvent<T>) {
e.preventDefault();
e.stopPropagation();
this.view.domNode.focus();