Skip to content

Commit afb0217

Browse files
committed
1 parent cc67267 commit afb0217

1 file changed

Lines changed: 29 additions & 9 deletions

File tree

src/vs/workbench/browser/parts/editor/tabsTitleControl.ts

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ export class TabsTitleControl extends TitleControl {
111111
this.tabsScrollbar = this._register(this.createTabsScrollbar(this.tabsContainer));
112112
tabsAndActionsContainer.appendChild(this.tabsScrollbar.getDomNode());
113113

114+
this._register(Gesture.addTarget(this.tabsContainer));
114115
// Tabs Container listeners
115116
this.registerTabsContainerListeners(this.tabsContainer, this.tabsScrollbar);
116117

@@ -181,6 +182,18 @@ export class TabsTitleControl extends TitleControl {
181182
}
182183
}));
183184

185+
this._register(addDisposableListener(tabsContainer, TouchEventType.Tap, (e: GestureEvent) => {
186+
if (e.tapCount !== 2) {
187+
return;
188+
}
189+
190+
if (e.initialTarget === tabsContainer) {
191+
EventHelper.stop(e);
192+
193+
this.group.openEditor(this.untitledTextEditorService.createOrGet(), { pinned: true /* untitled is always pinned */, index: this.group.count /* always at the end */ });
194+
}
195+
}));
196+
184197
// Prevent auto-scrolling (https://github.com/Microsoft/vscode/issues/16690)
185198
this._register(addDisposableListener(tabsContainer, EventType.MOUSE_DOWN, (e: MouseEvent) => {
186199
if (e.button === 1) {
@@ -600,16 +613,23 @@ export class TabsTitleControl extends TitleControl {
600613
}));
601614

602615
// Double click: either pin or toggle maximized
603-
disposables.add(addDisposableListener(tab, EventType.DBLCLICK, (e: MouseEvent) => {
604-
EventHelper.stop(e);
616+
[TouchEventType.Tap, EventType.DBLCLICK].forEach(eventType => {
617+
disposables.add(addDisposableListener(tab, eventType, (e: MouseEvent | GestureEvent) => {
618+
if (e instanceof MouseEvent) {
619+
EventHelper.stop(e);
620+
} else if ((<GestureEvent>e).tapCount !== 2) {
621+
// ignore single taps
622+
return;
623+
}
605624

606-
const editor = this.group.getEditorByIndex(index);
607-
if (editor && this.group.isPinned(editor)) {
608-
this.accessor.arrangeGroups(GroupsArrangement.TOGGLE, this.group);
609-
} else {
610-
this.group.pinEditor(editor);
611-
}
612-
}));
625+
const editor = this.group.getEditorByIndex(index);
626+
if (editor && this.group.isPinned(editor)) {
627+
this.accessor.arrangeGroups(GroupsArrangement.TOGGLE, this.group);
628+
} else {
629+
this.group.pinEditor(editor);
630+
}
631+
}));
632+
});
613633

614634
// Context menu
615635
disposables.add(addDisposableListener(tab, EventType.CONTEXT_MENU, (e: Event) => {

0 commit comments

Comments
 (0)