From c371d6331d25b0e5f47c73d4596c4e9aa7cd15e1 Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Mon, 12 Oct 2026 19:31:24 +0600 Subject: [PATCH] Ignore long strip taps confirmed after the reader is gone --- CHANGELOG.md | 1 + .../tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61398f3ca..76722475c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,7 @@ The format is a modified version of [Keep a Changelog](https://keepachangelog.co - Fixed the paged reader crashing when moving to another chapter after a wide page of a neighbouring chapter was split ([@AntsyLich](https://github.com/AntsyLich)) - Fixed a crash when opening the filters of a source with an invalid filter ([@AntsyLich](https://github.com/AntsyLich)) - Fixed a crash when installing an extension on a device where the system installer can't ask for confirmation ([@AntsyLich](https://github.com/AntsyLich)) +- Fixed a crash when tapping in the long strip reader as it closed ([@AntsyLich](https://github.com/AntsyLich)) ## [v0.21.1] - 2026-10-12 ### Fixed diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt index 2e88f97db..2f008764b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt @@ -243,7 +243,9 @@ class WebtoonRecyclerView @JvmOverloads constructor( inner class GestureListener : GestureDetectorWithLongTap.Listener() { override fun onSingleTapConfirmed(ev: MotionEvent): Boolean { - if (!tapDuringManualScroll) { + // A tap is confirmed after a delay, by when the reader can be gone, and scrolling a detached list + // lays out pages that can't compose + if (!tapDuringManualScroll && isAttachedToWindow) { tapListener?.invoke(ev) } return false