"Touch drag scroll" feature of the on-screen piano keyboard #16
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.
The feature allows scrolling the on-screen piano keyboard "windows" when one or more touches are still active and the user drags them to the side. This allows more flexible performance technique so one can reach more keys that fits in the current view while keeping the playing uninterrupted.
The feature is active when the new setting
Touch Drag Action
is set toScroll keyboard
value. The default value isPlay Notes
that corresponds to how the app behaves without it so any new user uninterested in new feature won't notice anything new or meet an unexpected regression.The feature should work either with a single touch (solo melody) or with multi-touch (accords). Sometimes the border between them is blurred because formally a short period of keeping a previous key pressed and a new one introduced works as a multi-touch mode. Anyway, with multi-touch it's possible that the scrolling moves too far or too close comparing to the expectations. This might occur when the fingers are not always move synchronously, but from my perspective this is something that is possible to adapt to.
A note for reviewing: the diff a github could not recognize that there's a small change in the implementation of
onTouchMove
method body that just introducedhandleScrollTouch
call so there are just a couple of lines added despite a huge fragment shown here.