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

💄 gesture handling in tabs title

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