Skip to content

Commit

Permalink
Cleanup touch handling a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
jassmith committed Mar 15, 2022
1 parent e3afabc commit 0d43bbc
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 20 deletions.
34 changes: 19 additions & 15 deletions packages/core/src/data-editor/data-editor.tsx
Expand Up @@ -1090,13 +1090,18 @@ const DataEditorImpl: React.ForwardRefRenderFunction<DataEditorRef, DataEditorPr
};

if (args.isTouch) {
if (
visibleRegionRef.current.x === downScrollPosition.current.x &&
visibleRegionRef.current.y === downScrollPosition.current.y
) {
if (args.kind === "cell" && !handleMaybeClick(args)) {
const vr = visibleRegionRef.current;
if (vr.x !== downScrollPosition.current.x || vr.y !== downScrollPosition.current.y) {
// we scrolled, abort
return;
}
if (args.kind === "cell") {
// click that cell
if (!handleMaybeClick(args)) {
handleSelect(args);
}
} else {
handleSelect(args);
}
return;
}
Expand All @@ -1117,16 +1122,15 @@ const DataEditorImpl: React.ForwardRefRenderFunction<DataEditorRef, DataEditorPr
}
}

if (args.kind !== "cell") {
return;
}
if (args.button === 0) {
handleMaybeClick(args);
} else if (args.button === 2) {
onCellContextMenu?.([args.location[0] - rowMarkerOffset, args.location[1]], {
...args,
preventDefault,
});
if (args.kind === "cell") {
if (args.button === 0) {
handleMaybeClick(args);
} else if (args.button === 2) {
onCellContextMenu?.([args.location[0] - rowMarkerOffset, args.location[1]], {
...args,
preventDefault,
});
}
}
},
[
Expand Down
13 changes: 8 additions & 5 deletions packages/core/src/data-grid/data-grid.tsx
Expand Up @@ -747,7 +747,10 @@ const DataGrid: React.ForwardRefRenderFunction<DataGridRef, DataGridProps> = (p,
}

onMouseDown?.(args);
ev.preventDefault();
if (!args.isTouch) {
// preventing default in touch events stops scroll
ev.preventDefault();
}
},
[eventTargetRef, getMouseArgsForPosition, groupHeaderActionForEvent, isOverHeaderMenu, onMouseDown]
);
Expand All @@ -762,10 +765,6 @@ const DataGrid: React.ForwardRefRenderFunction<DataGridRef, DataGridProps> = (p,

const isOutside = ev.target !== canvas && ev.target !== eventTarget;

if (!isOutside) {
ev.preventDefault();
}

let clientX: number;
let clientY: number;
if (ev instanceof MouseEvent) {
Expand All @@ -778,6 +777,10 @@ const DataGrid: React.ForwardRefRenderFunction<DataGridRef, DataGridProps> = (p,

const args = getMouseArgsForPosition(canvas, clientX, clientY, ev);

if (!isOutside && ev.cancelable) {
ev.preventDefault();
}

if (args.kind === "header" && isOverHeaderMenu(canvas, args.location[0], clientX, clientY)) {
const [col] = args.location;
const headerBounds = isOverHeaderMenu(canvas, col, clientX, clientY);
Expand Down

0 comments on commit 0d43bbc

Please sign in to comment.