Subject: Re: bug#4896: DocView: Continuous mode

From: Tassilo Horn <[email-masked]>
Date: Thu, 12 Nov 2009 14:10:20 +0100

Juri Linkov <[email-masked]> writes:

>> What do you exactly mean with Continuous mode?
>
> I mean a mode to scroll through document pages without having to use
> the previous-page and next-page keys like I described in the first
> message:
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=4896

I'm fine with everything you mentioned there.

I think mouse-4/5 once where bound to
doc-view-scroll-down-or-previous-page and
doc-view-scroll-down-or-previous-page previously, so they scrolled or
switched pages back then.  I don't know why this was changed.  I guess,
because one "press" of mouse-4/5 scrolled a half page, which was a bit
unusual...

>> One big buffer, where all images are shown each on its own line?
>
> Hmm, maybe.  Do you think this will cause problems with a large number
> of pages and corresponding images in the same buffer?

I don't know.  Just try it out by inserting all PNGs of some PDF into a
buffer.

What could be a problem with multiple images in one buffer is the
(re)conversion process on a first load of a document, or if a user wants
to adjust the scaling, or the doc has changed.  Then, one PNG after the
other changes, starting with the current one.  The conversion sentinel
is usually only called, when the whole thing has finished, but when all
PNGs are visible in the buffer, it would be better to refresh the images
as soon as a new one has finished.

The current implementation refreshes the current page, as soon as it is
(re)converted, by converting a list of important pages (the current one
and maybe some more) first so that the sentinel is called several times,
but that only works for PDFs.

>> There's some "minor continuous mode", i.e. when you scroll with SPC
>> and DEL, you will finally switch pages and start at the beginning/end
>> respectively.
>
> Yes, SPC and DEL already scroll continuously.
>
>> But still, there's only one image in the buffer.
>
> In the simplest case, one image is enough, provided that C-n/C-p and
> mouse scroll will jump to the next/previous page.  That's what
> `evince' and `kpdf' do in non-continuous mode.

Agreed.  So C-n/C-p should be bound to new functions that normally call
image-next/prev-line, or switch pages and scroll, just like
doc-view-scroll-down-or-previous-page and
doc-view-scroll-down-or-previous-page do.

> Ideally, there could be two images at a time, where you see the tail of
> the previous page and the head of the next page.

Maybe.  But the other changes are a first and simple step in the right
direction.

Bye,
Tassilo