From d9249eeedbd9f553f0882e3a6151da76fa6bde47 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Tue, 7 May 2024 13:22:01 +0800 Subject: [PATCH] Fix tap control area shifting in multi-window mode --- .../kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt | 7 ++++++- .../tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt index 5559c9d95..46b4f5bec 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt @@ -96,7 +96,12 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer { }, ) pager.tapListener = { event -> - val pos = PointF(event.rawX / pager.width, event.rawY / pager.height) + val windowOffset = IntArray(2) + activity.window.decorView.getLocationOnScreen(windowOffset) + val pos = PointF( + (event.rawX - windowOffset[0]) / pager.width, + (event.rawY - windowOffset[1]) / pager.height, + ) val navigator = config.navigator when (navigator.getAction(pos)) { diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt index b2c2cf0e4..1d9e20383 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt @@ -86,7 +86,12 @@ class WebtoonViewer(val activity: ReaderActivity, val isContinuous: Boolean = tr }, ) recycler.tapListener = { event -> - val pos = PointF(event.rawX / recycler.width, event.rawY / recycler.height) + val windowOffset = IntArray(2) + activity.window.decorView.getLocationOnScreen(windowOffset) + val pos = PointF( + (event.rawX - windowOffset[0]) / recycler.width, + (event.rawY - windowOffset[1]) / recycler.height, + ) val navigator = config.navigator when (navigator.getAction(pos)) {