@@ -8,11 +8,12 @@ import { ViewportConstants } from 'browser/shared/Constants';
88import { Disposable , toDisposable } from 'vs/base/common/lifecycle' ;
99import { IBufferService , ICoreMouseService , IOptionsService } from 'common/services/Services' ;
1010import { CoreMouseEventType } from 'common/Types' ;
11- import { scheduleAtNextAnimationFrame } from 'vs/base/browser/dom' ;
11+ import { addDisposableListener , scheduleAtNextAnimationFrame } from 'vs/base/browser/dom' ;
1212import { SmoothScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElement' ;
1313import type { ScrollableElementChangeOptions } from 'vs/base/browser/ui/scrollbar/scrollableElementOptions' ;
1414import { Emitter , Event } from 'vs/base/common/event' ;
1515import { Scrollable , ScrollbarVisibility , type ScrollEvent } from 'vs/base/common/scrollable' ;
16+ import { Gesture , EventType as GestureEventType , type GestureEvent } from 'vs/base/browser/touch' ;
1617
1718export class Viewport extends Disposable {
1819
@@ -104,6 +105,10 @@ export class Viewport extends Disposable {
104105 this . _register ( this . _bufferService . onScroll ( ( ) => this . _sync ( ) ) ) ;
105106
106107 this . _register ( this . _scrollableElement . onScroll ( e => this . _handleScroll ( e ) ) ) ;
108+
109+ // Touch/gesture scrolling support
110+ this . _register ( Gesture . addTarget ( screenElement ) ) ;
111+ this . _register ( addDisposableListener ( screenElement , GestureEventType . Change , ( e : GestureEvent ) => this . _handleGestureChange ( e ) ) ) ;
107112 }
108113
109114 public scrollLines ( disp : number ) : void {
@@ -190,4 +195,13 @@ export class Viewport extends Disposable {
190195 }
191196 this . _isHandlingScroll = false ;
192197 }
198+
199+ private _handleGestureChange ( e : GestureEvent ) : void {
200+ e . preventDefault ( ) ;
201+ e . stopPropagation ( ) ;
202+ const pos = this . _scrollableElement . getScrollPosition ( ) ;
203+ this . _scrollableElement . setScrollPosition ( {
204+ scrollTop : pos . scrollTop - e . translationY
205+ } ) ;
206+ }
193207}
0 commit comments