Repository navigation
Drag lists that refuse scroll actions when swiping past their last item - #277
Merged
Merged
Conversation
Some lists, such as the Kindle library, say they can't scroll and refuse the scroll actions, yet scroll when dragged, so swiping stopped at the last item on screen. When a swipe passes the last item on screen in such a list, Backtalk now drags the list with two fingers, which touch exploration passes through, holds still before lifting so the list doesn't fling, and moves on to the next item. When nothing moves, the list is at its end and swiping leaves it as before. A list that fits on screen refuses scroll actions too, so a drag needs a sign that there is more: the list's row count, or the item reaching the list's edge as an item cut off by it does. Fixes #150
This was referenced Oct 27, 2026
trypsynth
added a commit
that referenced
this pull request
Oct 28, 2026
Removes the Explore by touch developer setting, which left Backtalk unusable by touch when turned off. Touch exploration is now always requested on touch screens, except while the braille keyboard or a pause turns it off. Reverts #277. On a Galaxy S25, the dispatched two-finger drag came back through touch exploration as an exploration drag, so the Kindle library never moved. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #150
Problem
The Kindle library list reports
scrollable=falseand refusesACTION_SCROLL_FORWARDandACTION_SCROLL_BACKWARD, and so does every container above it. Swiping stopped at the fifth book, so a bigger library was partly out of reach. A real two-finger drag does scroll it.Change
autoScrollAtEdgeused to return when no scrollable container was found. If the pivot is inside a list or grid that refuses all scroll actions, it now calls the newdragUnscrollableList.focusmanagement/DragScroller.kt:continueStrokebefore they lift, so the list doesn't fling.onAutoScrolledmoves focus to the next item, the same as after a normal auto-scroll. If not,onAutoScrollFailedleaves the list, as before this change.differences.mdhas a section under Navigation.Testing
DragScrollerTest: drag geometry (forward, backward, clamping, an empty list), directions, row and edge checks, and which nodes count as a list that refuses scroll actions.:talkback:testPhoneDebugUnitTest(542 tests) and:lintPhoneDebugpass.