aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNaafiyan Ahmed <naafiyan@gmail.com>2022-04-14 18:03:05 -0400
committerNaafiyan Ahmed <naafiyan@gmail.com>2022-04-14 18:03:05 -0400
commitdd3015568c95fbafdfeace835f82f5032bd61aef (patch)
tree10c281c733efeb2390e8d2aaf1b463cc704e4189 /src
parent605ab32150c5b2b9d84eb817d3086796b72964df (diff)
fix: fixed panning with finger interaction
Diffstat (limited to 'src')
-rw-r--r--src/client/views/GestureOverlay.tsx9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/client/views/GestureOverlay.tsx b/src/client/views/GestureOverlay.tsx
index 75a757280..5f0311d38 100644
--- a/src/client/views/GestureOverlay.tsx
+++ b/src/client/views/GestureOverlay.tsx
@@ -24,7 +24,7 @@ import { RadialMenu } from "./nodes/RadialMenu";
import HorizontalPalette from "./Palette";
import { Touchable } from "./Touchable";
import TouchScrollableMenu, { TouchScrollableMenuItem } from "./TouchScrollableMenu";
-import { checkInksToGroup } from "./nodes/button/FontIconBox";
+import { checkInksToGroup, createInkGroup } from "./nodes/button/FontIconBox";
@observer
export class GestureOverlay extends Touchable {
@@ -129,6 +129,7 @@ export class GestureOverlay extends Touchable {
// pen is also a touch, but with a radius of 0.5 (at least with the surface pens)
// and this seems to be the only way of differentiating pen and touch on touch events
if (pt.radiusX > 1 && pt.radiusY > 1) {
+ createInkGroup();
Doc.UserDoc().activeInkTool = InkTool.None;
this.prevPoints.set(pt.identifier, pt);
}
@@ -499,6 +500,7 @@ export class GestureOverlay extends Touchable {
@action
onPointerDown = (e: React.PointerEvent) => {
if (InteractionUtils.IsType(e, InteractionUtils.TOUCHTYPE)) {
+ createInkGroup();
CurrentUserUtils.SelectedTool = InkTool.None;
return;
}
@@ -633,8 +635,7 @@ export class GestureOverlay extends Touchable {
}
// if no gesture (or if the gesture was unsuccessful), "dry" the stroke into an ink document
- console.log("dispatch gesture", CurrentUserUtils.SelectedTool);
- if (!actionPerformed && CurrentUserUtils.SelectedTool !== InkTool.None) {
+ if (!actionPerformed) {
const newPoints = this._points.reduce((p, pts) => { p.push([pts.X, pts.Y]); return p; }, [] as number[][]);
newPoints.pop();
console.log("getting to bezier math");
@@ -648,7 +649,7 @@ export class GestureOverlay extends Touchable {
controlPoints.push({ X: curve[2][0], Y: curve[2][1] });
controlPoints.push({ X: curve[3][0], Y: curve[3][1] });
- }
+ }
const dist = Math.sqrt((controlPoints[0].X - controlPoints.lastElement().X) * (controlPoints[0].X - controlPoints.lastElement().X) +
(controlPoints[0].Y - controlPoints.lastElement().Y) * (controlPoints[0].Y - controlPoints.lastElement().Y));
if (controlPoints.length > 4 && dist < 10) controlPoints[controlPoints.length - 1] = controlPoints[0];