@@ -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