Skip to content

Commit 271608d

Browse files
doomscythe2Jeffery Lee
andauthored
signaturepad touch support (#509)
Co-authored-by: Jeffery Lee <[email protected]>
1 parent bd04a4b commit 271608d

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

CodeBeam.MudBlazor.Extensions/TScripts/MudExtensions.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,24 @@ class MudSignaturePad {
141141
return this.canvas.toDataURL();
142142
}
143143

144+
addTouchOffsets(event) {
145+
try {
146+
if (event.touches === undefined) {
147+
return event;
148+
}
149+
var touch = event.touches[0] || event.changedTouches[0];
150+
var realTarget = document.elementFromPoint(touch.clientX, touch.clientY);
151+
event.offsetX = parseInt(touch.clientX - realTarget.getBoundingClientRect().x);
152+
event.offsetY = parseInt(touch.clientY - realTarget.getBoundingClientRect().y);
153+
if (event.offsetX > this.memCanvas.width || event.offsetX < 1 || event.offsetY > this.memCanvas.height || event.offsetY < 1) {
154+
this.isMouseDown = false;
155+
}
156+
}
157+
catch (e) {
158+
}
159+
return event;
160+
}
161+
144162
init() {
145163
this.setCanvasSize();
146164
this.setOptions(this.options);
@@ -209,6 +227,7 @@ class MudSignaturePad {
209227
}
210228

211229
startDrawing(event) {
230+
event = this.addTouchOffsets(event);
212231
this.isMouseDown = true;
213232
this.points.push({
214233
x: event.offsetX,
@@ -242,6 +261,7 @@ class MudSignaturePad {
242261
}
243262

244263
drawLine(event) {
264+
event = this.addTouchOffsets(event);
245265
if (this.isMouseDown) {
246266
if (this.isErasing === false) {
247267
this.clear();

0 commit comments

Comments
 (0)