Lots of the mouse and keyboard gestures in BookContentScreen could not be used in BookSearchScreen. There also were some inconsistencies that felt unintutive that have been unified in this PR.
How?
Since BookContentScreen and BookSearchScreen were kind of similar internally and used quite a bit of identical code, I introduced BookPaginatedScreen as a super class and pulled up all of the relevant methods.
Most code from BookContentScreen that handled navigation was unified to match both cases and some additional gestures introduced or changed.
Changes
Both Content and Search screens can now
Be navigated back and forth using scroll wheel (identical to back/forward buttons)
The exit button now opens the last chapter (book was closed when using the search page before)
Pressing backspace works for both, following the same logic as the exit button
The "back" button always opens the last entry. If the stack is empty the player is returned to the last open chapter
the search entry is not added to the stack and will be skipped instead
if opening an entry using search, the player will be returned to the category with that entry
Why?
Lots of the mouse and keyboard gestures in BookContentScreen could not be used in BookSearchScreen. There also were some inconsistencies that felt unintutive that have been unified in this PR.
How?
Since BookContentScreen and BookSearchScreen were kind of similar internally and used quite a bit of identical code, I introduced BookPaginatedScreen as a super class and pulled up all of the relevant methods. Most code from BookContentScreen that handled navigation was unified to match both cases and some additional gestures introduced or changed.
Changes
Both Content and Search screens can now