Hello. I’ve been using your fantastic document reder for a long time. This is my first time posting here. Thank you very much.
When browsing quickly through pages, there’s one aspect of the reader’s behavior that has become a nuisance to me, and there are some suggestions I would like to make in order to improve the situation.
From what I can infer as a mere user of the program, it seems like the reader tries to render the next page ahead of time so that it is available when you flip to it. The problem is that, if you flip through pages quickly enough, so that the reader can’t keep up, you start seeing blank pages while waiting for the rendering to be done. The problem with this is that it can quickly become tiresome when trying to flip through quickly, looking for some visual cue, when, instead, you keep staring at blank pages, and the rather jarring constant flickering between blanks and actual pages.
I think these suggestions would be a great improvement:
-Keep the last rendered page on screen until there’s a new one available, so that you are never looking at an empty page waiting for the reader to render something. This would be comparable to v-sync and double/triple buffering in realtime graphics.
This provides visual comfort.
-Improve the look-ahead buffer, allowing the user to set the number of pages to read ahead, and possibly add a configurable limit to RAM usage for the look-ahead functionality, to avoid problems with demanding documents.
-Add an option to force the reader to render and show all pages you flip through, even if this slows browsing down, where you have to wait for each page to render, instead of jumping over those the reader didn’t have enough time to render. This is useful when you are flipping through something fast, but you don’t want to miss any page because you are trying to locate an image or feature of the text.
A switch for this option should be placed somewhere which is reasonably quick to access instead of buried in some configuration menu or file where it will take long to change.
This could be combined with a modifier key you could hold while browsing, so that the behavior is the opposite of the current setting. That is: If the reader is set to wait for each page to render before it allows flipping to the next, the modifier key would cause the reader to skip and keep pushing through pages even if they never show up, just like it does now. On the other hand, If the reader is set to accept all page flips, skipping skip rendering if late, then the modifier key would force it to wait and finish rendering before allowing the nexty flip, forcing all pages to be seen at least once.
Another refinement to this could be an option for a minimum time a page needs to be on screen before the reader allows flipping to another.