diff options
| author | Copilot <198982749+Copilot@users.noreply.github.com> | 2025-10-24 11:14:12 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-24 11:14:12 +0900 |
| commit | 456504cf8281c972fded04e1496498d494891707 (patch) | |
| tree | c925ab94087089605828798bd4105d3aee4cfb76 /packages/frontend/src | |
| parent | Update MkImageEffectorDialog.vue (diff) | |
| download | misskey-456504cf8281c972fded04e1496498d494891707.tar.gz misskey-456504cf8281c972fded04e1496498d494891707.tar.bz2 misskey-456504cf8281c972fded04e1496498d494891707.zip | |
Fix touch position offset in image masking on iOS devices (#16702)
* Initial plan
* Fix iOS touch position offset in image masking feature
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Diffstat (limited to 'packages/frontend/src')
| -rw-r--r-- | packages/frontend/src/components/MkImageEffectorDialog.vue | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/packages/frontend/src/components/MkImageEffectorDialog.vue b/packages/frontend/src/components/MkImageEffectorDialog.vue index 19ddb81919..0fc8fa9dcc 100644 --- a/packages/frontend/src/components/MkImageEffectorDialog.vue +++ b/packages/frontend/src/components/MkImageEffectorDialog.vue @@ -257,8 +257,12 @@ function onImagePointerdown(ev: PointerEvent) { xOffset /= 2; yOffset /= 2; - let startX = ev.offsetX - xOffset; - let startY = ev.offsetY - yOffset; + const rect = canvasEl.value.getBoundingClientRect(); + const pointerOffsetX = ev.clientX - rect.left; + const pointerOffsetY = ev.clientY - rect.top; + + let startX = pointerOffsetX - xOffset; + let startY = pointerOffsetY - yOffset; if (AW / AH < BW / BH) { // 横長 startX = startX / (Math.max(AW, AH) / Math.max(BH / BW, 1)); @@ -311,9 +315,11 @@ function onImagePointerdown(ev: PointerEvent) { }); } - _move(ev.offsetX, ev.offsetY); + _move(ev.clientX, ev.clientY); - function _move(pointerX: number, pointerY: number) { + function _move(pointerClientX: number, pointerClientY: number) { + const pointerX = pointerClientX - rect.left; + const pointerY = pointerClientY - rect.top; let x = pointerX - xOffset; let y = pointerY - yOffset; @@ -340,7 +346,7 @@ function onImagePointerdown(ev: PointerEvent) { } function move(ev: PointerEvent) { - _move(ev.offsetX, ev.offsetY); + _move(ev.clientX, ev.clientY); } function up() { |