提交 65050271 编写于 作者: B Benjamin Pasero

💄 gesture handling in tabs title

上级 e2e55d63
......@@ -106,12 +106,12 @@ export class TabsTitleControl extends TitleControl {
this.tabsContainer.setAttribute('role', 'tablist');
this.tabsContainer.draggable = true;
addClass(this.tabsContainer, 'tabs-container');
this._register(Gesture.addTarget(this.tabsContainer));
// Tabs Scrollbar
this.tabsScrollbar = this._register(this.createTabsScrollbar(this.tabsContainer));
tabsAndActionsContainer.appendChild(this.tabsScrollbar.getDomNode());
this._register(Gesture.addTarget(this.tabsContainer));
// Tabs Container listeners
this.registerTabsContainerListeners(this.tabsContainer, this.tabsScrollbar);
......@@ -174,25 +174,27 @@ export class TabsTitleControl extends TitleControl {
}));
// New file when double clicking on tabs container (but not tabs)
this._register(addDisposableListener(tabsContainer, EventType.DBLCLICK, e => {
if (e.target === tabsContainer) {
EventHelper.stop(e);
this.group.openEditor(this.untitledTextEditorService.createOrGet(), { pinned: true /* untitled is always pinned */, index: this.group.count /* always at the end */ });
}
}));
[TouchEventType.Tap, EventType.DBLCLICK].forEach(eventType => {
this._register(addDisposableListener(tabsContainer, eventType, (e: MouseEvent | GestureEvent) => {
if (eventType === EventType.DBLCLICK) {
if (e.target !== tabsContainer) {
return; // ignore if target is not tabs container
}
} else {
if ((<GestureEvent>e).tapCount !== 2) {
return; // ignore single taps
}
this._register(addDisposableListener(tabsContainer, TouchEventType.Tap, (e: GestureEvent) => {
if (e.tapCount !== 2) {
return;
}
if ((<GestureEvent>e).initialTarget !== tabsContainer) {
return; // ignore if target is not tabs container
}
}
if (e.initialTarget === tabsContainer) {
EventHelper.stop(e);
this.group.openEditor(this.untitledTextEditorService.createOrGet(), { pinned: true /* untitled is always pinned */, index: this.group.count /* always at the end */ });
}
}));
}));
});
// Prevent auto-scrolling (https://github.com/Microsoft/vscode/issues/16690)
this._register(addDisposableListener(tabsContainer, EventType.MOUSE_DOWN, (e: MouseEvent) => {
......@@ -615,11 +617,10 @@ export class TabsTitleControl extends TitleControl {
// Double click: either pin or toggle maximized
[TouchEventType.Tap, EventType.DBLCLICK].forEach(eventType => {
disposables.add(addDisposableListener(tab, eventType, (e: MouseEvent | GestureEvent) => {
if (e instanceof MouseEvent) {
if (eventType === EventType.DBLCLICK) {
EventHelper.stop(e);
} else if ((<GestureEvent>e).tapCount !== 2) {
// ignore single taps
return;
return; // ignore single taps
}
const editor = this.group.getEditorByIndex(index);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册