diff --git a/src/vs/base/browser/browser.ts b/src/vs/base/browser/browser.ts index 3eb11e78c63..f67929c3641 100644 --- a/src/vs/base/browser/browser.ts +++ b/src/vs/base/browser/browser.ts @@ -119,4 +119,5 @@ export const isWebkitWebView = (!isChrome && !isSafari && isWebKit); export const isIPad = (userAgent.indexOf('iPad') >= 0 || (isSafari && navigator.maxTouchPoints > 0)); export const isEdgeLegacyWebView = isEdgeLegacy && (userAgent.indexOf('WebView/') >= 0); export const isElectron = (userAgent.indexOf('Electron/') >= 0); +export const isAndroid = (userAgent.indexOf('Android') >= 0); export const isStandalone = (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches); diff --git a/src/vs/editor/browser/controller/coreCommands.ts b/src/vs/editor/browser/controller/coreCommands.ts index 1f399fe561d..4ec704f9e7e 100644 --- a/src/vs/editor/browser/controller/coreCommands.ts +++ b/src/vs/editor/browser/controller/coreCommands.ts @@ -1931,6 +1931,7 @@ registerOverwritableCommand(Handler.Type, { }] }); registerOverwritableCommand(Handler.ReplacePreviousChar); +registerOverwritableCommand(Handler.CompositionType); registerOverwritableCommand(Handler.CompositionStart); registerOverwritableCommand(Handler.CompositionEnd); registerOverwritableCommand(Handler.Paste); diff --git a/src/vs/editor/browser/controller/mouseHandler.ts b/src/vs/editor/browser/controller/mouseHandler.ts index 31f3a0b68d7..8c7dae6abea 100644 --- a/src/vs/editor/browser/controller/mouseHandler.ts +++ b/src/vs/editor/browser/controller/mouseHandler.ts @@ -42,6 +42,7 @@ export interface IPointerHandlerHelper { linesContentDomNode: HTMLElement; focusTextArea(): void; + dispatchTextAreaEvent(event: CustomEvent): void; /** * Get the last rendered information for cursors & textarea. diff --git a/src/vs/editor/browser/controller/pointerHandler.ts b/src/vs/editor/browser/controller/pointerHandler.ts index b86fd84fd67..830599b9c52 100644 --- a/src/vs/editor/browser/controller/pointerHandler.ts +++ b/src/vs/editor/browser/controller/pointerHandler.ts @@ -13,6 +13,7 @@ import { EditorMouseEvent, EditorPointerEventFactory } from 'vs/editor/browser/e import { ViewController } from 'vs/editor/browser/view/viewController'; import { ViewContext } from 'vs/editor/common/view/viewContext'; import { BrowserFeatures } from 'vs/base/browser/canIUse'; +import { TextAreaSyntethicEvents } from 'vs/editor/browser/controller/textAreaInput'; interface IThrottledGestureEvent { translationX: number; @@ -210,6 +211,11 @@ class TouchHandler extends MouseHandler { const target = this._createMouseTarget(new EditorMouseEvent(event, this.viewHelper.viewDomNode), false); if (target.position) { + // Send the tap event also to the