Skip to content

Commit 8e57991

Browse files
BrayanDSOmikehardy
authored andcommitted
fix(new reviewer): gestures crash when scrolled
(cherry picked from commit 68bb7fd)
1 parent a54fc26 commit 8e57991

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

AnkiDroid/src/main/assets/scripts/ankidroid.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ globalThis.ankidroid.showAllHints = function () {
4040
return;
4141
}
4242
isSingleTouch = true;
43-
startX = event.touches[0].clientX;
44-
startY = event.touches[0].clientY;
43+
startX = event.touches[0].pageX;
44+
startY = event.touches[0].pageY;
4545
},
4646
{ passive: true },
4747
);
@@ -59,8 +59,8 @@ globalThis.ankidroid.showAllHints = function () {
5959
return;
6060
}
6161

62-
const endX = event.changedTouches[0].clientX;
63-
const endY = event.changedTouches[0].clientY;
62+
const endX = event.changedTouches[0].pageX;
63+
const endY = event.changedTouches[0].pageY;
6464
const scrollDirection = getScrollDirection(event.target);
6565
const params = new URLSearchParams({
6666
x: Math.round(endX),

AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/GestureParser.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ object GestureParser {
5959
if (isScrolling) return null
6060
if (uri.host == "doubleTap") return Gesture.DOUBLE_TAP
6161

62-
val tapX = uri.getIntQuery("x") ?: return null
63-
val tapY = uri.getIntQuery("y") ?: return null
62+
val pageX = uri.getIntQuery("x") ?: return null
63+
val pageY = uri.getIntQuery("y") ?: return null
6464
val deltaX = uri.getIntQuery("deltaX") ?: return null
6565
val deltaY = uri.getIntQuery("deltaY") ?: return null
6666
val absDeltaX = abs(deltaX)
@@ -72,12 +72,12 @@ object GestureParser {
7272
return determineSwipeGesture(deltaX, deltaY, absDeltaX, absDeltaY, scrollDirection)
7373
}
7474

75-
val row = getGridIndex(tapY, scrollY, measuredHeight, scale)
76-
val column = getGridIndex(tapX, scrollX, measuredWidth, scale)
75+
val row = getGridIndex(pageY, scrollY, measuredHeight, scale)
76+
val column = getGridIndex(pageX, scrollX, measuredWidth, scale)
7777
// FIXME fix the source of values that result in an invalid index
7878
if (row !in 0..2 || column !in 0..2) {
7979
throw IllegalArgumentException(
80-
"Gesture parsing error: row $row - column $column - uri $uri - isScrolling $isScrolling - scale $scale - tapX $tapX - tapY $tapY - scrollX $scrollX - scrollY $scrollY - measuredWidth $measuredWidth - measuredHeight $measuredHeight",
80+
"Gesture parsing error: row $row - column $column - uri $uri - isScrolling $isScrolling - scale $scale - pageX $pageX - pageY $pageY - scrollX $scrollX - scrollY $scrollY - measuredWidth $measuredWidth - measuredHeight $measuredHeight",
8181
)
8282
}
8383
return gestureGrid[row][column]

0 commit comments

Comments
 (0)