fix: drawing-tablet stylus touch events being prevented (#7494)

This commit is contained in:
David Luzar 2023-12-30 15:00:12 +01:00 committed by GitHub
parent c72e853c85
commit d19b51d4f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 7 deletions

View File

@ -67,7 +67,6 @@ import {
GRID_SIZE,
IMAGE_MIME_TYPES,
IMAGE_RENDER_TIMEOUT,
isAndroid,
isBrave,
LINE_CONFIRM_THRESHOLD,
MAX_ALLOWED_FILE_BYTES,
@ -90,6 +89,7 @@ import {
POINTER_EVENTS,
TOOL_TYPE,
EDITOR_LS_KEYS,
isIOS,
} from "../constants";
import { ExportedElements, exportCanvas, loadFromBlob } from "../data";
import Library, { distributeLibraryItemsOnSquareGrid } from "../data/library";
@ -2756,9 +2756,8 @@ class App extends React.Component<AppProps, AppState> {
}
private onTouchStart = (event: TouchEvent) => {
// fix for Apple Pencil Scribble
// On Android, preventing the event would disable contextMenu on tap-hold
if (!isAndroid) {
// fix for Apple Pencil Scribble (do not prevent for other devices)
if (isIOS) {
event.preventDefault();
}
@ -2783,9 +2782,6 @@ class App extends React.Component<AppProps, AppState> {
didTapTwice = false;
clearTimeout(tappedTwiceTimer);
}
if (isAndroid) {
event.preventDefault();
}
if (event.touches.length === 2) {
this.setState({

View File

@ -13,6 +13,10 @@ export const isFirefox =
export const isChrome = navigator.userAgent.indexOf("Chrome") !== -1;
export const isSafari =
!isChrome && navigator.userAgent.indexOf("Safari") !== -1;
export const isIOS =
/iPad|iPhone/.test(navigator.platform) ||
// iPadOS 13+
(navigator.userAgent.includes("Mac") && "ontouchend" in document);
// keeping function so it can be mocked in test
export const isBrave = () =>
(navigator as any).brave?.isBrave?.name === "isBrave";