Scrolling backwards at section boundaries causes incorrect page display

Bug #1856472 reported by JG Miller
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
calibre
Fix Released
Undecided
Unassigned

Bug Description

Calibre 4.6. Windows 10 19H2. My viewer config: paged mode, 2 pages per screen in landscape, and mouse wheel scrolls by screenfuls.

When a chapter or top-level section (unsure of terminology) contains an even number of pages, and the user scrolls past the end of that section to the next one, then scrolls back to the previous section again, the 2-page screen of the end of the previous section now has the final page on the left side with a blank page inserted on the right, when the correct behavior should be to display the final 2 pages of the previous section on that screen, no blank page.

This bug is important because it causes pages to jump around and appear on unexpected sides of the screen when navigating back and forth in the book, which is inconsistent and confusing to the user. The 2-page view when scrolling by screenful should exactly mimic the experience of reading a paper book.

I'm seeing this with epubs, have not verified other formats. The same behavior occurs whether scrolling with mouse wheel, scroll bar, or keyboard.

Thank you.

Revision history for this message
JG Miller (jg-millirem) wrote :
Revision history for this message
JG Miller (jg-millirem) wrote :

Forgot to add using 64-bit Calibre.

Revision history for this message
Kovid Goyal (kovid) wrote : Re: calibre bug 1856472

The viewer is *not* a paper book. It is not supposed to behave like one.
In particular using the left and right arrow keys means you can scroll by
just one "page" at a time, instead of by screen-fulls (2 pages in your
case). Therefore there always has to be a blank page at the end of every
chapter, so that it is possible to scroll to have only the last page
visible on screen.

And note that this means that for chapters that have
an odd number of pages, the last page turn behaves just like all
previous page turns, otherwise it would either skip the last page, or
scroll by only a single page, which would give the same sense of
disorientation you experience scrolling backwards.

Since scrolling forwards is more common than scrolling backwards I prefer
to optimize for the former rather than the latter.

That said, I can certainly have the viewer go back to same view when
scrolling backwards soon after scrolling forwards over a chapter
boundary.

Revision history for this message
JG Miller (jg-millirem) wrote :

Thank you, I would be delighted if you would make my requested change at least optional.

Perhaps a simpler, more general description of this change: when in paged mode, and when navigating backward through the book (regardless of whether one has previously navigated forward or how recently they did), and crossing a boundary into the previous chapter, calculate the number of pages in the previous chapter, and fill the screen with pages from the end of the previous chapter and with blank pages as appropriate for the user's pages-per-screen setting, to make it the same as what the user would see if they had navigated forward through the previous chapter to its end.

My goal is consistency of view no matter in which direction one navigates, or when they navigate.

Thank you.

Revision history for this message
Kovid Goyal (kovid) wrote : Fixed in master

Fixed in branch master. The fix will be in the next release. calibre is usually released every alternate Friday.

 status fixreleased

Changed in calibre:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.