aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/GestureOverlay.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/GestureOverlay.tsx')
-rw-r--r--src/client/views/GestureOverlay.tsx16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/client/views/GestureOverlay.tsx b/src/client/views/GestureOverlay.tsx
index 24df3925b..f034e06ad 100644
--- a/src/client/views/GestureOverlay.tsx
+++ b/src/client/views/GestureOverlay.tsx
@@ -42,6 +42,7 @@ export class GestureOverlay extends Touchable {
@observable private _menuY: number = -300;
@observable private _pointerY?: number;
@observable private _points: { X: number, Y: number }[] = [];
+ @observable private _timeStamps: number[] = [];
@observable private _strokes: InkData[] = [];
@observable private _palette?: JSX.Element;
@observable private _clipboardDoc?: JSX.Element;
@@ -60,6 +61,7 @@ export class GestureOverlay extends Touchable {
private pointerIdentifier?: number;
private _hands: Map<number, React.Touch[]> = new Map<number, React.Touch[]>();
private _holdTimer: NodeJS.Timeout | undefined;
+ private _strokeStartTime: number = 0;
protected _multiTouchDisposer?: InteractionUtils.MultiTouchEventDisposer;
@@ -424,6 +426,7 @@ export class GestureOverlay extends Touchable {
this._strokes = [];
this._points = [];
+ this._timeStamps = [];
this._possibilities = [];
document.removeEventListener("touchend", this.handleHandUp);
}
@@ -502,6 +505,8 @@ export class GestureOverlay extends Touchable {
CurrentUserUtils.SelectedTool = InkTool.Write;
}
this._points.push({ X: e.clientX, Y: e.clientY });
+ this._timeStamps.push(0);
+ this._strokeStartTime = new Date().getTime();
setupMoveUpEvents(this, e, this.onPointerMove, this.onPointerUp, emptyFunction);
// if (CurrentUserUtils.SelectedTool === InkTool.Highlighter) SetActiveInkColor("rgba(245, 230, 95, 0.75)");
}
@@ -510,6 +515,7 @@ export class GestureOverlay extends Touchable {
@action
onPointerMove = (e: PointerEvent) => {
this._points.push({ X: e.clientX, Y: e.clientY });
+ this._timeStamps.push(new Date().getTime() - this._strokeStartTime);
if (this._points.length > 1) {
const B = this.svgBounds;
@@ -556,6 +562,7 @@ export class GestureOverlay extends Touchable {
const points = this._points.map(p => ({ X: p.X - B.left, Y: p.Y - B.top }));
//push first points to so interactionUtil knows pointer is up
this._points.push({ X: this._points[0].X, Y: this._points[0].Y });
+ this._timeStamps.push(this._timeStamps[0]);
const initialPoint = this._points[0.];
const xInGlass = initialPoint.X > (this._thumbX ?? Number.MAX_SAFE_INTEGER) && initialPoint.X < (this._thumbX ?? Number.MAX_SAFE_INTEGER) + (this.height);
@@ -567,6 +574,7 @@ export class GestureOverlay extends Touchable {
case ToolglassTools.InkToText:
this._strokes.push(new Array(...this._points));
this._points = [];
+ this._timeStamps = [];
CognitiveServices.Inking.Appliers.InterpretStrokes(this._strokes).then((results) => {
const wordResults = results.filter((r: any) => r.category === "line");
const possibilities: string[] = [];
@@ -590,6 +598,7 @@ export class GestureOverlay extends Touchable {
case ToolglassTools.IgnoreGesture:
this.dispatchGesture(GestureUtils.Gestures.Stroke);
this._points = [];
+ this._timeStamps = [];
break;
}
}
@@ -598,6 +607,7 @@ export class GestureOverlay extends Touchable {
this.makePolygon(this.InkShape, false);
this.dispatchGesture(GestureUtils.Gestures.Stroke);
this._points = [];
+ this._timeStamps = [];
if (!CollectionFreeFormViewChrome.Instance?._keepPrimitiveMode) {
this.InkShape = "";
Doc.UserDoc().activeInkTool = InkTool.None;
@@ -647,9 +657,11 @@ export class GestureOverlay extends Touchable {
}
this._points = [];
+ this._timeStamps = [];
}
} else {
this._points = [];
+ this._timeStamps = [];
}
CollectionFreeFormViewChrome.Instance?.primCreated();
}
@@ -698,6 +710,7 @@ export class GestureOverlay extends Touchable {
}
}
this._points = [];
+ this._timeStamps = [];
switch (shape) {
//must push an extra point in the end so InteractionUtils knows pointer is up.
//must be (points[0].X,points[0]-1)
@@ -820,7 +833,8 @@ export class GestureOverlay extends Touchable {
points: stroke ?? this._points,
gesture: gesture as any,
bounds: this.getBounds(stroke ?? this._points),
- text: data
+ text: data,
+ times: this._timeStamps
}
}
)