summaryrefslogtreecommitdiff
path: root/packages/frontend/src
diff options
context:
space:
mode:
authorCopilot <198982749+Copilot@users.noreply.github.com>2025-10-24 11:14:12 +0900
committerGitHub <noreply@github.com>2025-10-24 11:14:12 +0900
commit456504cf8281c972fded04e1496498d494891707 (patch)
treec925ab94087089605828798bd4105d3aee4cfb76 /packages/frontend/src
parentUpdate MkImageEffectorDialog.vue (diff)
downloadmisskey-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.vue16
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() {