提交 8a22996a 编写于 作者: P Peng Lyu

Fix #83715. Handle touch to scroll in interactive playground.

上级 e5e35892
......@@ -5,6 +5,7 @@
import 'vs/css!./walkThroughPart';
import { DomScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElement';
import { EventType as TouchEventType, GestureEvent, Gesture } from 'vs/base/browser/touch';
import { ScrollbarVisibility } from 'vs/base/common/scrollable';
import * as strings from 'vs/base/common/strings';
import { URI } from 'vs/base/common/uri';
......@@ -37,6 +38,7 @@ import { INotificationService } from 'vs/platform/notification/common/notificati
import { Dimension, size } from 'vs/base/browser/dom';
import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService';
import { CancellationToken } from 'vs/base/common/cancellation';
import { domEvent } from 'vs/base/browser/event';
export const WALK_THROUGH_FOCUS = new RawContextKey<boolean>('interactivePlaygroundFocus', false);
......@@ -112,6 +114,14 @@ export class WalkThroughPart extends BaseEditor {
}
}
private onTouchChange(event: GestureEvent) {
event.preventDefault();
event.stopPropagation();
const scrollPosition = this.scrollbar.getScrollPosition();
this.scrollbar.setScrollPosition({ scrollTop: scrollPosition.scrollTop - event.translationY });
}
private addEventListener<K extends keyof HTMLElementEventMap, E extends HTMLElement>(element: E, type: K, listener: (this: E, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): IDisposable;
private addEventListener<E extends HTMLElement>(element: E, type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): IDisposable;
private addEventListener<E extends HTMLElement>(element: E, type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): IDisposable {
......@@ -396,6 +406,8 @@ export class WalkThroughPart extends BaseEditor {
this.scrollbar.scanDomNode();
this.loadTextEditorViewState(input);
this.updatedScrollPosition();
this.contentDisposables.push(Gesture.addTarget(innerContent));
this.contentDisposables.push(domEvent(innerContent, TouchEventType.Change)(this.onTouchChange, this, this.disposables));
});
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册